【问题标题】:error when trying to link libraries尝试链接库时出错
【发布时间】:2013-11-08 12:34:36
【问题描述】:

我正在尝试在 linux i386 上编译我的 c 代码。 我的 sqlite3 库位于:

/usr/lib/i386-linux-gnu/libsqlite3.so.0
/usr/lib/i386-linux-gnu/libsqlite3.so.0.8.6

但链接器没有找到它们。我什至使用 -L 选项手动指定了路径,我怀疑这是不必要的:

cc -pthread -L/lib/i386-linux-gnu -L/usr/lib/i386-linux-gnu -L../i386/debug/lib/ ./bin/i386/debug/*.o  -lsculib -lpthread -lsqlite3 -o ../i386/debug/bin/myProgram
/usr/bin/ld: cannot find -lsqlite3
collect2: error: ld returned 1 exit status
make: *** [../i386/debug/bin/core] Error 1

任何想法为什么它没有找到它们?

【问题讨论】:

    标签: linux libraries cc


    【解决方案1】:

    想必你还需要头文件。

    $ sudo apt-get install libsqlite3-dev
    

    【讨论】:

    • 非常感谢。这解决了问题。虽然,我现在遇到了一些奇怪的错误: undefined reference to `sqlite3_free' 但它是在 /usr/include/sqlite3.h 中定义的 下面是我如何使用它。 ----------------- database.h #ifndef DATABASE_H #define DATABASE_H #include --- -------------- database.c #include "database.h" sqlite3_free(errMsg);
    • 我想通了。在我的链接命令中,我应该在需要它的源文件名之后指定 sqlite3 包。
    猜你喜欢
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多