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

Qt undefined reference to `pugi::xml_document::xml_document()`

最近我在做一个项目 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)

我认为此错误是链接器错误。这意味着您添加了函数声明但没有添加函数定义。

因此,下载'pugixml'并在QT中列出pugixml.cpp源文件。函数定义应该在这个 .cpp 文件中。

然后你的编译器就可以找到函数的定义了。

应该可以解决问题。

您可以通过编辑名为 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,header 将变为 self-contained.