我最近从12.1升级到xcode版本12.2。我的maven构建的javacpp项目在clang++步骤中开始失败,出现以下命令和错误:
clang++ -I/Users/<username>/git/<product>-javacpp/src/main/cpp -I/usr/local/include -I/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk-14.0.2.jdk/Contents/Home/include/darwin /Users/<username>/git/<product>-javacpp/target/classes/com/<product>/javacpp/video/ffmpeg/jniAvFormatCallbackFactory.cpp /Users/<username>/git/<product>-javacpp/src/main/java/jnijavacpp.cpp -march=x86-64 -m64 -O3 -Wl,-rpath,@loader_path/. -Wall -fPIC -dynamiclib -undefined dynamic_lookup -o libjniAvFormatCallbackFactory.dylib -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lavformat -lavutil -framework JavaVM
ld: framework not found JavaVM
我正在使用macos10.15.7和javacpp1.4.4构建
通过重新安装每个xcode版本,我确认这个框架存在于xcode 12.1中,并且已经从xcode 12.2中删除。我现在可以用12.1构建,但需要了解未来接受xcode升级的路径。
2条答案
按热度按时间4smxwvx51#
在nadernader的答案的基础上,根据苹果的文档javavm.framework在osxv10.7中被标记为不推荐使用。
我在xcode12.2更改日志中找不到任何关于更改的内容。我需要为版本检查显示适当的文档,所以我检查的是os版本而不是xcode版本。
avwztpqn2#
xcode12.2现在使用macos11(bigsur)框架集,它不再包括javavm框架。这里的解决方案是将maven构建升级到最近可用的javacpp1.5.4。这个版本不再将'-frameworkjavavm'选项添加到clang++命令中,仍然正确地构建/链接。
这一变化似乎解决了以下问题:https://github.com/bytedeco/javacpp/issues/417
pom.xml需要对org.bytedecojavacpp插件和依赖项进行更新。