在编译项目时无法找到sqlite3

时间:2015-03-08 06:39:05

标签: c shared-libraries eclipse-cdt

我正在使用c中的一个小项目,该项目使用sqlite3与DB合作。我正在使用Eclipse CDT。 这是相关的代码段:

#include <sqlite3.h>
int main(int argc, char * argv[]) {
    if (argc < 2) {
        fprintf(stderr,"Error: database name not specified!\n");
        return 1;
    }

    struct sqlite3* db;
    sqlite3_open("movies.db", db);

    return 0;
}

我也有我的文件&#34; sqlite3.so&#34;在项目目录中。 当我尝试编译它时,我得到&#34;找不到-lsqlite3&#34;错误。

我已经在链接器中添加了文件(在项目属性中),但我仍然收到此错误。 我该怎么办?

由于

3 个答案:

答案 0 :(得分:0)

将本地文件重命名为 libsqlite3.so ,甚至更好,创建一个链接 libsqlite3.so - &gt; sqlite3.so 。并且,如上所述,您必须将-L / project / dir添加到命令行。

答案 1 :(得分:0)

我不知道你从哪里得到sqlite3.so。但这就是我所做的(不是在Eclipse中)并且它有效。

  1. http://www.sqlite.org/2015/sqlite-autoconf-3080803.tar.gz下载并解压缩sqlite3的来源

  2. 配置

    CFLAGS="-Os" ./configure --prefix=/mnt/store/sqlite-autoconf-3080803/build/
    
  3. make install
    
  4. 获取代码并进行一些更改sqlite3_open("movies.db", &db);并添加#include <stdio.h>

  5. 编译代码

    gcc test.c -I/mnt/store/sqlite-autoconf-3080803/build/include -L/mnt/store/sqlite-autoconf-3080803/build/lib/ -lsqlite3
    

答案 2 :(得分:0)

我很确定这对你有用,或者你完全忘记了这一点。在任何情况下,由于没有接受的答案,我正在写一个。

安装sqlite3时,未安装开发所需的标头和库。您必须将它们与包libsqlite3-dev分开安装。所以下面的命令应该可以解决问题。

sudo apt-get install libsqlite3-dev

请记住,对于大多数Linux上的第三方软件和Ubuntu来说都是如此。因此,如果您需要ssl库,请从libssl-dev包安装它。

希望这有帮助。