添加QNetworkAccessManager后出现未定义引用错误,求解决方案
问题解决:QNetworkAccessManager 未定义引用错误
你的错误属于链接阶段错误,原因是项目没有链接Qt的QtNetwork模块——Qt的网络功能实现单独封装在这个模块里,仅包含头文件不足以让链接器找到对应的函数实现。
解决步骤
修改项目的CMakeLists.txt文件,添加QtNetwork模块的依赖配置:
- 在
find_package指令中加入Network组件:
find_package(Qt5 REQUIRED COMPONENTS Core Widgets Network)
(如果你的项目使用Qt6,将Qt5替换为Qt6即可)
- 在
target_link_libraries指令中加入Qt5::Network(或Qt6::Network):
target_link_libraries(ATLAS PRIVATE Qt5::Core Qt5::Widgets Qt5::Network)
这里的ATLAS是你的项目名称,要和错误信息里的CMakeFiles/ATLAS.dir保持一致。
额外说明
修复链接问题后,你还需要在Euro构造函数中添加网络请求代码,否则不会实际发起汇率获取请求:
// 在connect代码之后添加 manager->get(QNetworkRequest(QUrl(urlEuroString)));
内容的提问来源于stack exchange,提问作者Mikołaj Nawrocki
相关产品推荐
相关产品推荐

