我试图实现this tutorial,并希望包含json11 C ++库。
我对两者都进行了相同的处理,从以下位置下载了回购: https://github.com/libmx3/mx3,将它们添加到我项目的/ deps /文件夹中,然后运行GYP为两者生成.xcodeproj文件。
然后我创建一个C ++项目,将两个项目添加到工作区中,并在Build Phases->链接二进制文件下添加库和库。
当我点击运行时,构建失败并显示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库。也许编译库的方式有问题?
答案 0 :(得分:0)
这两个图书馆都警告说" macosx"在支持的平台中找不到。当我将它添加到json11项目设置中时,编译的编译和两个警告都消失了。
SQlite3仍然只有iOS(iphone,iphonesimulator),但它编译得很好。我想知道区别是什么。