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