我正在使用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;错误。
我已经在链接器中添加了文件(在项目属性中),但我仍然收到此错误。 我该怎么办?
由于
答案 0 :(得分:0)
将本地文件重命名为 libsqlite3.so ,甚至更好,创建一个链接 libsqlite3.so - &gt; sqlite3.so 。并且,如上所述,您必须将-L / project / dir添加到命令行。
答案 1 :(得分:0)
我不知道你从哪里得到sqlite3.so。但这就是我所做的(不是在Eclipse中)并且它有效。
从http://www.sqlite.org/2015/sqlite-autoconf-3080803.tar.gz下载并解压缩sqlite3的来源
配置
CFLAGS="-Os" ./configure --prefix=/mnt/store/sqlite-autoconf-3080803/build/
请
make install
获取代码并进行一些更改sqlite3_open("movies.db", &db);
并添加#include <stdio.h>
编译代码
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
包安装它。
希望这有帮助。