2

我最近从 12.1 更新到 Xcode 版本 12.2。我的 javacpp 项目的 maven 构建在 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

我正在使用 macOS 10.15.7 和 JavaCPP 1.4.4 构建

通过重新安装每个 Xcode 版本,我确认该框架存在于 Xcode 12.1 中,并且已从 Xcode 12.2 中删除。我现在可以使用 12.1 构建,但需要了解未来接受 Xcode 升级的路径。

4

3 回答 3

2

您可以安全地替换-framework JavaVM-framework JavaNativeFoundation. 它对我有用。

S。

于 2021-04-29T08:12:20.140 回答
1

Xcode 12.2 现在使用 macOS 11 (Big Sur) 框架集,其中不再包含 JavaVM 框架。这里的解决方案是将 maven 构建升级到最近可用的 JavaCPP 1.5.4。此版本不再向 clang++ 命令添加“-framework JavaVM”选项,并且仍然可以正确构建/链接。

此更改似乎解决了该问题:https ://github.com/bytedeco/javacpp/issues/417

pom.xml 需要更新 org.bytedeco javacpp 插件和依赖项。

于 2020-11-15T12:50:01.520 回答
0

为了建立 NaderNader 的答案,根据Apple 文档, JavaVM.framework 自 OS X v10.7 起已被标记为已弃用。

我在 Xcode 12.2 更改日志中找不到任何提及更改的内容。我需要显示适当的文档以进行版本检查,因此我检查的是操作系统版本而不是 Xcode 版本。

于 2020-12-21T16:21:22.730 回答