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