Qt未定义对`pugi :: xml_document :: xml_document()`的引用

时间:2016-11-24 05:52:06

标签: c++ qt pugixml

最近我正在研究一个带有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)

2 个答案:

答案 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文件中。

然后您的编译器将能够找到该函数的定义。

应该解决这个问题。