找不到-ljson11的库但找到-lsqlite 3

时间:2015-12-10 11:09:24

标签: c++ xcode static-libraries ld djinni

我试图实现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库。也许编译库的方式有问题?

1 个答案:

答案 0 :(得分:0)

这两个图书馆都警告说" macosx"在支持的平台中找不到。当我将它添加到json11项目设置中时,编译的编译和两个警告都消失了。

SQlite3仍然只有iOS(iphone,iphonesimulator),但它编译得很好。我想知道区别是什么。