我正在尝试通过添加我想要包含 json11 C++ 库的内容来实现本教程。
我对两者都遵循了相同的过程,从: https ://github.com/libmx3/mx3 下载了 repo ,将它们添加到我项目的 /deps/ 文件夹中,然后运行 GYP 为两者生成 .xcodeproj 文件。
然后我创建一个 C++ 项目,将这两个项目添加到工作区中,并在 Build Phases->Link binaries with libraries 下添加库。
当我点击运行时,构建失败ld: library not found for -ljson11
我已经尝试重新生成它们并将它们添加到主 xcodeproj 中。并进入目标依赖项。我已经仔细检查了图书馆项目,它们是相同的。我还在库搜索路径中添加了编译 .a 文件的文件夹,但这些都没有影响。如果我删除项目编译的 json11 依赖项,但我不明白为什么找到 sqlite3 并且没有抛出错误,但相同的 json11 项目将无法工作。
我可以在 Debug-build 文件夹中看到 .a 文件,如果我单独构建它们,则没有错误。
这是完整的构建日志
Ld /Users/myuser/Library/Developer/Xcode/DerivedData/DjinniTest-eqaqzcfyskdxupbqpdngkdmoidtq/Build/Products/Debug/DjinniTest normal x86_64
cd /Users/myuser/Documents/Dev/djinni_test/cpp_project
export MACOSX_DEPLOYMENT_TARGET=10.11
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
-arch x86_64
-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
-L/Users/myuser/Library/Developer/Xcode/DerivedData/DjinniTest-eqaqzcfyskdxupbqpdngkdmoidtq/Build/Products/Debug
-L/Users/myuser/Library/Developer/Xcode/DerivedData/DjinniTest-eqaqzcfyskdxupbqpdngkdmoidtq/Build/Products/Debug/..
-F/Users/myuser/Library/Developer/Xcode/DerivedData/DjinniTest-eqaqzcfyskdxupbqpdngkdmoidtq/Build/Products/Debug
-filelist /Users/myuser/Library/Developer/Xcode/DerivedData/DjinniTest-eqaqzcfyskdxupbqpdngkdmoidtq/Build/Intermediates/DjinniTest.build/Debug/DjinniTest.build/Objects-normal/x86_64/DjinniTest.LinkFileList
-mmacosx-version-min=10.11
-stdlib=libc++
-ljson11
-lsqlite3
-Xlinker
-dependency_info
-Xlinker /Users/myuser/Library/Developer/Xcode/DerivedData/DjinniTest-eqaqzcfyskdxupbqpdngkdmoidtq/Build/Intermediates/DjinniTest.build/Debug/DjinniTest.build/Objects-normal/x86_64/DjinniTest_dependency_info.dat
-o /Users/myuser/Library/Developer/Xcode/DerivedData/DjinniTest-eqaqzcfyskdxupbqpdngkdmoidtq/Build/Products/Debug/DjinniTest
ld: library not found for
-ljson11
clang: error: linker command failed with exit code 1 (use -v to see invocation)
编辑:即使我将编译后的文件添加到项目中使它们变黑,它仍然抱怨找不到 ljson11 库。也许库的编译方式有问题?