有哪位大佬用c++在window环境上安装过libpqxx连接postgresql,遇到一点问题
环境:c++17、win10 64位 x64、libpqxx 7.7.5、vscode2022 社区版、postgresql 15
类库已经安装成功,但是调用失败。
,报错为:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2019 无法解析的外部符号 PQresultStatus,函数 "private: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl pqxx::result::status_error(void)const " (?status_error@result@pqxx@@AEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) 中引用了该符号 LjReport_Cxx17_Server_N2 C:\Opt\LjReport_Cxx17_Server_N2\pqxx.lib(result.obj) 1
根据您提供的错误信息,看起来是链接器无法解析到libpqxx库中的某个符号(PQresultStatus)。这可能是由于以下几个原因导致的:
库路径设置错误:请确保在链接器的库路径中正确指定了libpqxx库的位置。这可以通过在项目配置中添加正确的库目录进行设置。
库版本不匹配:确保您使用的libpqxx库版本与您的项目相兼容。请检查您使用的libpqxx版本和项目的编译器是否一致。如果您使用的是libpqxx 7.7版本,请确认它与您的编译器以及其他依赖库的版本兼容。
缺少依赖库:libpqxx可能依赖于其他库,如libpq(PostgreSQL C库)。请确保您已正确地安装并链接了所有必需的依赖库。
链接器选项错误:确保在项目配置中正确设置了链接器选项。这包括将libpqxx库添加到链接器的附加依赖项中。
请检查以上可能的原因,并逐一排除。如果问题仍然存在,请提供更多的项目配置和环境细节,以便我们能够更具体地帮助您解决问题。
1、库路径设定,确定正确指向了libpqxx的库
2、库版本不对,c++17是支持libpqxx7系列以上的,并且我测试了7.0、7.1、7.2、7.4、7.7不同的版本
3、缺少依赖项,怎么讲呢,我怀疑到这点了,但是vs2022里面我增加指向了postgresql的lib。里面有针对libpq也就是c的libpq.lib,并增加了。
4、链接库我也指向了。
5、并且我还测试了c++20版本
6、我还问了chatgpt,还是没找到问题在哪。