1

我正在将一些在 Linux 下使用 cmake 和 gcc 编译的 c++ 代码移植到更大的 Windows 项目中。我们使用的是Microsoft Visual Studio 2013,该项目是一个简单的命令行工具,内置发布模式,x64。链接 libxml2 和 libxslt 时,我收到一堆链接器错误。首先我尝试下载预构建的二进制文件,但是当这不起作用时,我尝试自己构建 libxml2 和 libxslt。我下载了 libxml2-2.7.8 的源代码,并像这样构建它:

cscript configure.js compiler=msvc-12.0 modules=no http=no ftp=no python=no schematron=no iconv=no static=yes
nmake

这很成功,产生了 libxml2.lib 和 libxml2_a.lib。然后,我将这些库的路径添加到我的项目设置中的链接器路径中,并将库名称添加到链接器输入的附加依赖项中。我对 libxslt 遵循了这些相同的说明。在 MSVC 中构建项目时,出现以下错误:

Error   1   error LNK2001: unresolved external symbol xsltParseStylesheetFile   C:\Users\aday\Source\Workspaces\Illumina.Isis\Dev\Trunk\Src\bcl2fastq\DemuxReportGenerator.obj  bcl2fastq

Error   2   error LNK2001: unresolved external symbol xmlSubstituteEntitiesDefault  C:\Users\aday\Source\Workspaces\Illumina.Isis\Dev\Trunk\Src\bcl2fastq\DemuxReportGenerator.obj  bcl2fastq
Error   3   error LNK2001: unresolved external symbol xmlFreeDoc    C:\Users\aday\Source\Workspaces\Illumina.Isis\Dev\Trunk\Src\bcl2fastq\DemuxReportGenerator.obj  bcl2fastq
Error   4   error LNK2001: unresolved external symbol xmlCleanupParser  C:\Users\aday\Source\Workspaces\Illumina.Isis\Dev\Trunk\Src\bcl2fastq\DemuxReportGenerator.obj  bcl2fastq
Error   5   error LNK2001: unresolved external symbol xsltCleanupGlobals    C:\Users\aday\Source\Workspaces\Illumina.Isis\Dev\Trunk\Src\bcl2fastq\DemuxReportGenerator.obj  bcl2fastq
Error   6   error LNK2001: unresolved external symbol xmlLoadExtDtdDefaultValue C:\Users\aday\Source\Workspaces\Illumina.Isis\Dev\Trunk\Src\bcl2fastq\DemuxReportGenerator.obj  bcl2fastq
Error   7   error LNK2001: unresolved external symbol xsltFreeStylesheet    C:\Users\aday\Source\Workspaces\Illumina.Isis\Dev\Trunk\Src\bcl2fastq\DemuxReportGenerator.obj  bcl2fastq
Error   8   error LNK2001: unresolved external symbol xsltApplyStylesheet   C:\Users\aday\Source\Workspaces\Illumina.Isis\Dev\Trunk\Src\bcl2fastq\DemuxReportGenerator.obj  bcl2fastq
Error   9   error LNK2001: unresolved external symbol exsltRegisterAll  C:\Users\aday\Source\Workspaces\Illumina.Isis\Dev\Trunk\Src\bcl2fastq\DemuxReportGenerator.obj  bcl2fastq
Error   10  error LNK2001: unresolved external symbol xmlParseFile  C:\Users\aday\Source\Workspaces\Illumina.Isis\Dev\Trunk\Src\bcl2fastq\DemuxReportGenerator.obj  bcl2fastq

我不知道为什么会发生这些链接器错误。库在路径中,并明确链接。如果我将库移到一边并尝试构建,我会收到一条错误消息,告诉我找不到文件。所以我知道它可以看到文件,但由于某种原因它无法从中读取符号。我尝试使用所有可能的参数组合来构建库,但没有成功。我尝试链接 libxml2_a.lib 和 libxml2.lib。我成功地链接到类似构建的 boost 库。为什么我会收到这些链接器错误?

4

0 回答 0