首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用gumbo查询的VC++问题(链接错误)

使用gumbo查询的VC++问题(链接错误)
EN

Stack Overflow用户
提问于 2015-04-24 13:53:12
回答 1查看 839关注 0票数 1

我有一个VC++项目,并且我正在尝试使用gumbo-query库的扩展,found here。以下是我采取的具体步骤--我对导入库不是很熟悉,所以我使用Boost库:

在Visual Studio (VS Community 2013)中,在项目设置->配置属性-> C/C++ -> General下,我已经将路径放到一个文件夹中,该文件夹包含上面链接的两个项目的所有源文件。具体地说,我从两个项目的src文件夹中放置了.c、.cpp和.h文件,并在我的项目设置中将它们作为包含目录引用。

按照扩展Google的gumbo解析器(found here)的项目的示例文件,我添加了以下两行代码来导入库:

代码语言:javascript
复制
#include "Document.h"
#include "Node.h"

代码语言:javascript
复制
CDocument d;

导致链接器错误,如下所示:

代码语言:javascript
复制
1>Main.obj : error LNK2028: unresolved token (0A0003B7) "public: __thiscall CDocument::CDocument(void)" (??0CDocument@@$$FQAE@XZ) referenced in function "private: void __clrcall MyApplication::Main::worker_DoWork(class System::Object ^,class System::ComponentModel::DoWorkEventArgs ^)" (?worker_DoWork@Main@MyApplication@@$$FA$AAMXP$AAVObject@System@@P$AAVDoWorkEventArgs@ComponentModel@4@@Z)
1>Main.obj : error LNK2028: unresolved token (0A0003B8) "public: virtual __thiscall CDocument::~CDocument(void)" (??1CDocument@@$$FUAE@XZ) referenced in function "private: void __clrcall MyApplication::Main::worker_DoWork(class System::Object ^,class System::ComponentModel::DoWorkEventArgs ^)" (?worker_DoWork@Main@MyApplication@@$$FA$AAMXP$AAVObject@System@@P$AAVDoWorkEventArgs@ComponentModel@4@@Z)
1>Main.obj : error LNK2019: unresolved external symbol "public: __thiscall CDocument::CDocument(void)" (??0CDocument@@$$FQAE@XZ) referenced in function "private: void __clrcall MyApplication::Main::worker_DoWork(class System::Object ^,class System::ComponentModel::DoWorkEventArgs ^)" (?worker_DoWork@Main@MyApplication@@$$FA$AAMXP$AAVObject@System@@P$AAVDoWorkEventArgs@ComponentModel@4@@Z)
1>Main.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall CDocument::~CDocument(void)" (??1CDocument@@$$FUAE@XZ) referenced in function "private: void __clrcall MyApplication::Main::worker_DoWork(class System::Object ^,class System::ComponentModel::DoWorkEventArgs ^)" (?worker_DoWork@Main@MyApplication@@$$FA$AAMXP$AAVObject@System@@P$AAVDoWorkEventArgs@ComponentModel@4@@Z)
1>..{omitted}..\MyApplication.exe : fatal error LNK1120: 4 unresolved externals

无论我将CDocument实例化放在哪里,这个错误似乎都会发生。

我能做些什么来纠正这个问题呢?VS似乎认为includes很好,当我输入CDocument d时,它会亮起,表明它识别CDocument类型。

EN

回答 1

Stack Overflow用户

发布于 2015-04-24 19:30:16

一如既往,很明显,我做JS开发人员已经太久了。我确实需要编译一个.lib文件。感谢Christian提醒我这一点。

Google最初的gumbo-parser项目包括一个VS项目。我打开它并对其进行编译,修复了所有项目设置问题,以便可以将其导入到我的项目中,这是我通过VS项目的配置属性->链接器->输入->附加依赖项设置完成的。

接下来,我从包装库gumbo-query中添加了额外的源文件,其中我必须修复原始gumbo-parser项目中的parser.h/parser.cpp和包装库中的Parser.h/Parser.cpp文件之间的命名冲突。我还将所有对#include <gumbo.h>的引用都更改为#include "gumbo.h"

最后,我得到了一个包含原始库和包装库的gumbo.lib文件,并将其导入到我的项目中,现在我似乎可以成功地使用这些函数了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29839733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档