soci ODBC的C++链接器错误LNK2019
C++ linker error LNK2019 for soci ODBC
我正在使用以下代码行使用soci构建一个c++项目:
session sql(odbc, "DRIVER={SQL Server};SERVER=server;DATABASE=database;UID=user;PWD=pass;");
我收到这个链接器错误消息:
Error 1 error LNK2019: unresolved external symbol
"public: __cdecl soci::session::session(class soci::backend_factory const
&,class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char> > const &)" (??
0session@soci@@QEAA@AEBVbackend_factory@1@AEBV?$basic_string@DU
$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function main
D:DevelopmentPrivateKkserverkservermain.obj kserver
我已经建立了soci使用:
cmake -G "Visual Studio 12 Win64" -DWITH_BOOST=ON -DWITH_ODBC=ON -DCMAKE_BUILD_TYPE=Debug ..soci-mastersrc
我还将include文件夹添加到了项目中,这似乎很好。
我还添加了:
D:DevelopmentToolslibsocilibDebug
到链接器目录。
如果我只使用构建,它就会起作用
session sql()
我好像错过了ODBC后端库。我在哪里找到它?
我宁愿把它作为评论,但我没有足够的声誉。可能缺少soci后端.h。文件soci-odbc.h将有一行包含soci-backend.h只需检查此包含是否有效。如果它当时不工作,则无法从soci-odbc.h访问soci-backend.h,这就是问题的原因。如果我没记错的话,那么soci-backend.h可能就在soci-odbc.h的上面的目录中。对soci-odbc.h中的include进行更改,事情就可能开始工作了。
希望这能有所帮助!!
答案是这样的(没有头发了):
我使用cmake生成的解决方案如下:
"Visual Studio 12 Win64"
这意味着我正在制定Studio 122013解决方案。
我以前安装过Studio 112012,它安装了x64 Cross Tools Command Prompt
。
我正在测试构建的Studio 2013社区版似乎没有安装到Studio 2013环境的快捷方式。
在此之后,在构建SOCI时,ODBC的后端没有构建,因为它找不到include和library文件夹,而我在构建的输出中没有注意到这些文件夹。
为了解决这个问题,我需要启动命令行使用:
%comspec% /k ""C:Program Files (x86)Microsoft Visual Studio 12.0VCvcvarsall.bat"" x86_amd64
之后,ODBC项目也在解决方案中创建,并且可以构建该项目。
相关文章:
- Visual Studio中的wxwidgets应用程序给出错误"LNK2019 unresolved external symbol"
- 构建 Tensorflow 调试时出现错误LNK2019
- 错误LNK2019未解析的外部符号"public: __thiscall SLinkList<char>::SLinkList<char>(void)"
- Google Test:错误 LNK2019:使用 Visual Studio 2017 与 CMake 进行未解析的外
- Azure IOT 错误LNK2019:函数IoTHubClient_LL_UploadToBlob_step1and2
- C++编译错误LNK2019:未解决的外部符号错误
- 错误 LNK2019: 未解析的外部符号 Visual Studio 2013 与 openCV
- 调用静态方法,收到错误:LNK2019
- nanodbc 错误 LNK2019:未解析的外部符号 - 在基本连接上
- 编译轨道样品时的C 错误-LNK2019未解决的外部符号
- main.obj : 错误 LNK2019: 未解析的外部符号 公共: __cdecl.
- 如何在我的指针和阵列功能中修复未解决的外部错误-LNK2019和LNK1120
- 错误LNK2019:未解决的外部符号模板
- 错误LNK2019:未解决的外部符号-MSVC调试构建功能模板
- 错误 LNK2019:未解析的外部符号"double __cdecl calculateRetail(double,double)"
- 错误 LNK2019:未解析的外部符号"外部"C"此错误是什么?
- 字符串以使用SQLAPI(Visual Studio 2010)时出现错误LNK2019
- 使用继承的编译器错误lnk2019和c4930
- 错误 LNK2019:GPLVM 代码中未解析的外部符号 _lbfgs_
- openCV 243 使用静态库错误LNK2019