【问题标题】:xcode c++ sqlite3 symbol(s) not found for architecture x86_64xcode c++ sqlite3 symbol(s) not found for architecture x86_64
【发布时间】:2013-08-31 15:19:27
【问题描述】:

您好,我想在 xcode 4 的 c++ 项目中使用 sqlite

现在我收到此错误

Ld /Users/jayb/Library/Developer/Xcode/DerivedData/EMS-bpigynlzjbrescadebhoiupqmtkg/Build/Products/Debug/EMS 正常 x86_64 cd /用户/jayb/文档/开发/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/调试-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;
}

【问题讨论】:

    标签: c++ sqlite linker xcode4.4


    【解决方案1】:

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

    #import <sqlite3.h>
    

    【讨论】:

    • 你是个天才,你不知道我尝试用 C++ 编译 SQLite3 有多久了,WEEKS 人——他们的网站没用,我已经尝试过 Linux windows Mac 并且即将完成尝试.谢谢!
    【解决方案2】:

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

    糟糕,我还不能发布图片:(

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

    干杯

    【讨论】:

      【解决方案3】:

      我不熟悉 xcode。查找linker 设置或compiler 设置并在此处添加-lsqlite3

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

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

      【讨论】:

      • 感谢您提供的信息,如果有人知道如何在 Xcode 4.3 环境中执行此操作,将不胜感激
      【解决方案4】:

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

      参考如下: xcode sqlite3 libsqlite.dylib

      【讨论】:

        猜你喜欢
        • 2016-05-21
        • 1970-01-01
        • 1970-01-01
        • 2015-04-23
        • 1970-01-01
        • 1970-01-01
        • 2020-08-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多