nanodbc 错误 LNK2019:无法解析的外部符号 - 在基本连接上
nanodbc error LNK2019: unresolved external symbol - on basic connection
我正在尝试使用 ODBC 驱动程序连接到 MySQL 数据库,使用 nanodbc 库,ODBC 的 C++ 包装器,但我得到 error LNK2019: unresolved external symbol
我已经在 nanodbc.lib 所在的附加库目录中添加了安装库目录的路径。我什至在我的源目录中复制了 nanodbc.lib,但仍然没有成功。
我已将 nanodbc.lib 添加到 Properties->Linker->Input->Additional Directories 以防 #pragma comment(lib, "nanodbc.lib")
无法正常工作,但它仍然无法正常工作。
最糟糕的部分是相同的代码在现有项目中工作(具有不同的连接字符串)。
工具:Microsoft Visual Studio Community 2017 版本 15.9.11
包管理器:vcpkg
OS : Windows 10 专业 64 位
语言标准:C++17
代码:
#include <iostream>
#include <nanodbc/nanodbc.h>
#pragma comment(lib, "nanodbc.lib")
int main()
{
nanodbc::string dns = "PLC_Interface";
nanodbc::string user_name = "root";
nanodbc::string password = "rooot";
nanodbc::connection conn(dns, user_name, password);
std::cout << conn.connected() << std::endl;
//std::cout << "Database Name : " <<conn.database_name() << std::endl;
//std::cout << "DBMS Name : " <<conn.dbms_name() << std::endl;
//std::cout << "DBMS Version : " <<conn.dbms_version() << std::endl;
conn.disconnect();
std::cout << conn.connected() << std::endl;
}
错误:
error LNK2019: unresolved external symbol "public: __cdecl nanodbc::connection::connection(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,long)" (??0connection@nanodbc@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@00J@Z) referenced in function main
问题解决了。
问题出在 vcpkg 包管理器创建的库上。当我自己手动构建库时,问题得到解决。无需更改代码(即使使用 #pragma
)。
想知道他们是否有任何方法可以比较库以首先找出导致问题的原因?
我正在尝试使用 ODBC 驱动程序连接到 MySQL 数据库,使用 nanodbc 库,ODBC 的 C++ 包装器,但我得到 error LNK2019: unresolved external symbol
我已经在 nanodbc.lib 所在的附加库目录中添加了安装库目录的路径。我什至在我的源目录中复制了 nanodbc.lib,但仍然没有成功。
我已将 nanodbc.lib 添加到 Properties->Linker->Input->Additional Directories 以防 #pragma comment(lib, "nanodbc.lib")
无法正常工作,但它仍然无法正常工作。
最糟糕的部分是相同的代码在现有项目中工作(具有不同的连接字符串)。
工具:Microsoft Visual Studio Community 2017 版本 15.9.11
包管理器:vcpkg
OS : Windows 10 专业 64 位
语言标准:C++17
代码:
#include <iostream>
#include <nanodbc/nanodbc.h>
#pragma comment(lib, "nanodbc.lib")
int main()
{
nanodbc::string dns = "PLC_Interface";
nanodbc::string user_name = "root";
nanodbc::string password = "rooot";
nanodbc::connection conn(dns, user_name, password);
std::cout << conn.connected() << std::endl;
//std::cout << "Database Name : " <<conn.database_name() << std::endl;
//std::cout << "DBMS Name : " <<conn.dbms_name() << std::endl;
//std::cout << "DBMS Version : " <<conn.dbms_version() << std::endl;
conn.disconnect();
std::cout << conn.connected() << std::endl;
}
错误:
error LNK2019: unresolved external symbol "public: __cdecl nanodbc::connection::connection(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,long)" (??0connection@nanodbc@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@00J@Z) referenced in function main
问题解决了。
问题出在 vcpkg 包管理器创建的库上。当我自己手动构建库时,问题得到解决。无需更改代码(即使使用 #pragma
)。
想知道他们是否有任何方法可以比较库以首先找出导致问题的原因?