0

嗨,我想在 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.o 中的 _main “_sqlite3_errmsg”,引用自:main.o 中的 _main “_sqlite3_open”,引用自:main.o 中的 _main 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;
}
4

4 回答 4

6

我遇到了类似的错误:在我的情况下我做了以下操作:

#import <sqlite3.h>

在此处输入图像描述

于 2015-05-04T04:40:39.980 回答
5

我找到了方法,希望它可以帮助寻找相同解决方案的人。现在它构建正确,我可以看到输出

哎呀,我还不能发布图片:(

从 xcode 构建设置中,您可以找到一个名为 (Linking) 的选项卡,在 Linking 选项卡上有字段调用“其他链接器标志”我只是为调试和发布添加了 -lsqlite3

干杯

于 2013-08-29T12:09:09.627 回答
1

我对xcode不熟悉。查找linker设置或compiler设置并在-lsqlite3那里添加。

也许这个页面有帮助:Xcode what's the difference between "Other Linker Flags" vs "Other_LDFLAGS"

LDFLAGS 被传递给链接器。CFLAGS 被传递给编译器。

于 2013-08-28T13:51:23.950 回答
0

需要在您的项目中链接 libsqlite3.dylib。这可以在链接框架和库中完成并添加 libsqlite3.dylib。

供参考: xcode sqlite3 libsqlite.dylib

于 2014-07-04T09:33:56.133 回答