如何在Ubuntu上使用带有c ++的SQLite? (未定义的引用错误)

时间:2012-07-18 12:32:59

标签: c++ ubuntu sqlite

我想在Ubuntu上使用带有c ++的SQLite。我选择从https://www.sqlite.org/quickstart.html尝试这个例子。但是在运行c++ test.cpp -o test时出现错误:

/tmp/ccTwwjKw.o: In function `main':
test.cpp:(.text+0xf1): undefined reference to `sqlite3_open'
test.cpp:(.text+0x106): undefined reference to `sqlite3_errmsg'
test.cpp:(.text+0x12e): undefined reference to `sqlite3_close'
test.cpp:(.text+0x15d): undefined reference to `sqlite3_exec'
test.cpp:(.text+0x18f): undefined reference to `sqlite3_free'
test.cpp:(.text+0x19b): undefined reference to `sqlite3_close'
collect2: ld gab 1 als Ende-Status zurück

我认为问题与此处相同:Sqlite undefined reference to `sqlite3_open' error in Netbeans C++ on Ubuntu, Integrating SQLite into Netbeans C++ Ubuntu。但是我没有make文件而且我没有使用netbeans。

1 个答案:

答案 0 :(得分:2)

这是链接器错误,您没有链接到任何库。使用-llibname链接到正确的库,其中libname是从一开始就删除了lib的库的名称。例如,如果libname是libsqlite3.so,请尝试在编译步骤结束时添加-lsqlite3。当然,如果使用-L/path/to/lib选项在非标准位置,您还需要提供该库的路径,显然您需要先安装相关的库。