最近我正在研究一个带有Qt / C ++ / xml和其他东西的项目。我必须从xml文件中获取一些字符串值。为此,我正在使用
#include "pugixml.hpp"
。
但是当我使用pugi::xml_document document;
时,会出现如下错误。
undefined reference to 'pugi::xml_document::xml_document()'
正如我在this link中看到的那样,我必须在编译时使用pugixml.cpp
。任何人都知道如何将pugixml.cpp
添加到Qt项目中?
我正在使用,
Qt Creator 4.0.2
Based on Qt 5.7.0 (GCC 4.9.1 20140922(Red Hat 4.9.1-10), 63 bit)
答案 0 :(得分:5)
您可以通过编辑名为pugiconfig.hpp
的文件并在此处取消注释该行来解决此问题:
// Uncomment this to switch to header-only version
//#define PUGIXML_HEADER_ONLY
将其更改为:
// Uncomment this to switch to header-only version
#define PUGIXML_HEADER_ONLY
现在您不需要直接添加pugixml.cpp
,标题将变为自包含。
答案 1 :(得分:1)
我认为此错误是链接器错误。这意味着您已添加了函数声明,但未添加函数定义。
因此,请下载' pugixml'并在QT中列出pugixml.cpp源文件。函数定义应该在.cpp文件中。
然后您的编译器将能够找到该函数的定义。
应该解决这个问题。