您好我想在xcode 4中的c ++项目中使用sqlite
现在我收到此错误
Ld / Users / jayb / Library / Developer / Xcode / DerivedData / EMS-bpigynlzjbrescadebhoiupqmtkg / Build / Products / Debug / EMS normal x86_64 cd / Users / jayb / Documents / Developement / EMS / EMS setenv MACOSX_DEPLOYMENT_TARGET 10.8 /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。 8.sdk -L / Users / jayb / Library / Developer / Xcode / DerivedData / EMS-bpigynlzjbrescadebhoiupqmtkg / Build / Products / Debug -F / Users / jayb / Library / Developer / Xcode / DerivedData / EMS-bpigynlzjbrescadebhoiupqmtkg / Build / Products / Debug -filelist /Users/jayb/Library/Developer/Xcode/DerivedData/EMS-bpigynlzjbrescadebhoiupqmtkg/Build/Intermediates/EMS.build/Debug/EMS.build/Objects-normal/x86_64/EMS.LinkFileList -mmacosx-version-min = 10.8 -o / Users / jayb / Library / Developer / Xcode / DerivedData / EMS-bpigynlzjbrescadebhoiupqmtkg / Build / Products / Debug / EMS
架构x86_64的未定义符号: “_sqlite3_close”,引自: _main在main.o中 “_sqlite3_errmsg”,引自: _main在main.o中 “_sqlite3_open”,引自: _main在main.o中 ld:找不到架构x86_64的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
我发现这是链接器问题 它可以用编译器选项-lsqlite3
来修复但是,如何在Xcode中添加该选项??????
我使用xcode 4.4上的“运行”按钮来编译我的项目。 我没有在终端窗口编译。
这是我的代码
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <sqlite3.h>
using namespace std;
int main()
{
sqlite3 *db;
int rc = sqlite3_open("EMSDB", &db);
if (rc) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
exit(0);
}
else {
fprintf(stderr, "Opened Database successfully\n");
}
sqlite3_close(db);
return 0;
}
答案 0 :(得分:5)
我找到了路, 希望它可以帮助某人寻找相同的解决方案。 现在它构建正确,我可以看到输出
woops,我还不能发布图片:(
来自xcode构建设置, 你可以找到一个叫做(链接)的标签 并在链接选项卡上 有现场调用'其他链接标志' 我只是为Debug和Release
添加了-lsqlite3欢呼声
答案 1 :(得分:1)
我不熟悉xcode。查找linker
设置或compiler
设置,并在其中添加-lsqlite3
。
也许这个页面有助于:Xcode what's the difference between "Other Linker Flags" vs "Other_LDFLAGS"
LDFLAGS传递给链接器。 CFLAGS被传递给编译器。
答案 2 :(得分:0)
需要在项目中链接libsqlite3.dylib。这可以在 链接的框架和库并添加libsqlite3.dylib。