编译期间的SOCI未定义的参考错误
问题描述:
我试图让社会工作,并将我的代码基于他们的文档here。我收到一个我无法辨认的错误。编译期间的SOCI未定义的参考错误
我的代码:
// relevant imports
using namespace soci;
using namespace std;
int main(int argc, char** argv) {
string dbName = "mysql";
string options = "dbname=db user=root password=abc";
try {
session sql(dbName, options); // this is line 22
} catch (exception e) {
printf("%s", e.what());
}
printf("working");
return 0;
}
错误:
build/Debug/GNU-Linux-x86/main.o: In function `main':
/home/kevin/Dropbox/bamboo/main.cpp:22: undefined reference to
`soci::session::session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/kevin/Dropbox/bamboo/main.cpp:22: undefined reference to `soci::session::~session()'
答
你需要对SOCI库和合适的后端链接。将“-lsoci”添加到链接器命令行。
更新:根据意见
,您需要添加:
-L/usr/local/lib -lsoci_core -lsoci_mysql
到链接器的命令行。
+0
我只是试过和LD,我相信是连接器抱怨: “/ usr/bin/ld:找不到-lsoci” – Kevin 2011-01-25 00:43:12
“未定义的引用”是一个链接器错误。你有链接到适当的库? – fredoverflow 2011-01-24 22:40:42