我从上周开始从 github ( https://github.com/libffi/libffi/issues/538 )重新发布一个问题。
我目前在使用 Ant 构建脚本(仅供参考:https ://github.com/thepaul/libjna-java )将一些 JNA 库构建为可部署的 jar 时遇到问题。为了将此库中的 API 用于我的其他项目。(我经历麻烦构建的唯一目的是能够使用它的 API。由于缺乏文档和没有提供现有的构建工件,我不得不自己做。将整个 libjna 存储库作为项目导入我的另一个项目可能是另一种方法,但我认为它不合适。也就是说,如果有更好的方法来使用 libjna 中的库,请告诉我!)
所以这就是我试图将它构建到可部署的 jar 文件中的方法:
我已经下载了源项目。
尝试在 cygwin 上使用 Ant(我下载了最新版本)进行编译。失败,因为它需要 libffi。所以我从这里( https://github.com/libffi/libffi)下载了 libffi 源代码。
尝试使用 Ant 再次编译。失败,因为它找不到 config.log 中提到的“/c/Program Files (x86)/Microsoft Visual Studio 9.0/vc/bin/cl” 所以我检查了 cc.sh 并发现它指的是旧版本微软 Visual Studio。我有一个现有的 Visual Studio Express 安装。所以我在 cc.sh 文件中将路径更改为“C:\Program Files (x86)\Microsoft Visual Studio\2017\WDExpress\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x64”。
尝试使用 Ant 再次编译。似乎修复工作但由于找不到“mspdbcore.dll”而失败并出现不同的错误。我在 "..\x86" 中找到了这个文件,所以我将文件复制到 ..\x64
尝试使用 Ant 再次编译。因找不到“mspdb140.dll”而失败,出现类似错误但文件不同。我在“..\x86”中找到了这个文件,所以我复制了
再次尝试编译。因不同的错误而失败,因为现在它说
"LINK : fatal error LNK1104: cannot open file 'LIBCMT.lib'"
,虽然我可以确认这个文件肯定在“C:\Program Files (x86)\Microsoft Visual Studio\2017\WDExpress\VC\Tools\MSVC\14.16.27023\lib\x64”
为了解决这个错误,我尝试(徒劳):
- 将 Microsoft Visual Studio 路径添加到 PATH
- C:\Program Files (x86)\Microsoft Visual Studio\2017\WDExpress\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x64
- C:\Program Files (x86)\Microsoft Visual Studio\2017\WDExpress\VC\Tools\MSVC\14.16.27023\lib\x64
- C:\Program Files (x86)\Microsoft Visual Studio\2017\WDExpress\Common7\IDE
- 下载了社区版和专业版的 MS Visual Studio 2019(由于某种原因找不到这些 dll)
- 分别下载了mspdb140.dll和mspdbcore.dll,config.log说找不到这些文件
请注意,我也在网上做了一些研究,但是:
- 我不使用 Visual Studio IDE,因为我只是想用 Ant 构建它,所以这篇文章并没有太大帮助(链接:致命错误 LNK 1104:无法打开文件 'LIBCMT.lib')
- 我也不太明白这篇文章的答案(https://social.msdn.microsoft.com/Forums/en-US/cbedc1ba-c50b-499e-aa2e-12b0ce6a40ba/lnk1104-cannot-open-file-libcmtlib ?forum=vclanguage )
所以这就是我卡住的地方。
请参阅附加的最新配置日志。 配置日志
还附加了 Ant 构建日志。 ant_compile_error.txt
任何人都可以提供帮助将不胜感激!
干杯戴尔