我试图使用SOCI库来方便MySQL访问,但我一直在安装该库。
到目前为止,我所做的是:
- 制作项目并使用CMake进行编译
- 将我的项目链接到编译后创建的lib/release目录
- 将我的项目链接到MySQL C连接器库目录
,下面是我的其他包含目录:http://puu.sh/6qGNP.png
但不知怎么的,当我编译示例程序时,我会得到一堆链接器错误,比如:
1>main.obj:错误LNK2019:未解析的外部符号"public:virtual__thiscall soci::details::standard_into_type::~standard_intotype(void)"(??)??1standard_into_type@details@soci@@UAE@XZ)在函数"public:virtual__thiscall soci::details::into_type::~into_type(void)"中引用(??1$into_type@H@details@soci@@UAE@XZ)1> main.obj:错误LNK2001:未解析的外部符号"protected:virtual void __thiscall soci::details::standard_into_type::post_fetch(bool,bool)"(?post_fetch@standard_into_type@details@soci@@MAEX_N0@Z)
我在哪里搞砸了?
来自文档:
所需客户端库
SOCI MySQL后端需要MySQL的libmysqlclient客户端库。
请注意,SOCI库本身也依赖于libdl,因此编译基本客户端程序所需的最小库集是:
-lsoci_core-lsoci_mysql-ldl-lmysql客户端
这一直对我有效。如果你想从构建位置链接它们,需要将带有库路径的-L开关传递给编译器。