Qt 添加读XML出现的问题

环境:VS2019+QT5.14.2 使用Dom方式读取
问题:加完XML所需要的头文件后,编译一直报错“无法解析的外部符号 "__declspec(dllimport) public: __thiscall QDomDocument……”,但QDomDocument头文件已包含。在qt的安装包里也能找到对应的头文件和LIB库

初自学qt,网上找了很久的解决方法,大多数都是说在.pro文件里添加+XML。在我的工程里找了几遍也没找到这个文件。最后才知道VS环境下创建的QT工程是没有.pro文件

最后终于找到一种解决办法:
在工程属性里把xml所在的头文件和lib库文件路径写在C/C++ - 常规 - 附加包含目录 和 链接器 - 常规 - 附加库目录 中,最后将lib库名称写在 链接器 - 常规 - 附加依赖项 中

按此方法编译终于可以通过,但执行 file.close();时一直报错,屏蔽该句后,整个函数执行完后报错。一直没找到解决办法

无意中发现关于VS下解决链接问题的另一种方法:
在工程属性页中 找到 选择 Qt Project Settings - Qt Modules,下拉打开,弹出如下框

勾上XML

确定后编译OK,且file.close();执行ok
注:上面勾XML部分新建工程时也可以选择,就不会有后面的麻烦了,后期如果需要添加其他功能也可以在Qt Modules里添加

注:后面学习用流的方式(即QXmlStreamReader)读取xml文件,发现可以不用加载XML模块,直接include QXmlStreamReader即可,而且QXmlStreamReader读取时间快,所读取的XML文件内容比较多,测试读取到第一个最小节点,QXmlStreamReader<=2ms ; Dom<=42ms

posted @ 2020-10-28 12:06  希腊若蝶  阅读(320)  评论(0)    收藏  举报