C++ Tinyxml-针对x64平台时出现链接错误

C++ Tinyxml-针对x64平台时出现链接错误,c++,tinyxml,C++,Tinyxml,我正在使用库解析项目中的XML文件。当我尝试以x64平台为目标时,会出现链接器错误,以下是其中之一: 错误4错误LNK2001:未解析的外部符号“专用:静态 结构TiXmlString::Rep TiXmlString::nullrep_“ (?nullrep_u2;@TiXmlString@@0URep@1@A) 使用stInyXML.obj的类 更新:我估计没有安装tinyxml的x64版本,但当我尝试为x64平台构建库时,我遇到了以下错误: LNK1561: entry point mus

我正在使用库解析项目中的XML文件。当我尝试以x64平台为目标时,会出现链接器错误,以下是其中之一:

错误4错误LNK2001:未解析的外部符号“专用:静态 结构TiXmlString::Rep TiXmlString::nullrep_“ (?nullrep_u2;@TiXmlString@@0URep@1@A) 使用stInyXML.obj的类

更新:我估计没有安装tinyxml的x64版本,但当我尝试为x64平台构建库时,我遇到了以下错误:

LNK1561: entry point must be defined

我没有为
x64平台构建tinyxml
,然后将
tinyxml.h
tinystr.h
添加到项目中,而是添加了所有库文件,包括
.cpp
文件,现在我可以针对x64平台,实际上,库是,当我构建整个项目时正在构建。

它看起来不像tinyxml支持开箱即用的共享库构建

以下是我从tinyxml 2.6.2源代码构建DLL所遵循的步骤:

  • 在MS Visual Studio Express 2012 for Windows桌面中打开提供的SLN文件
    tinyxml.SLN
    。出现提示时,选择将旧项目文件转换为新格式
  • 从“解决方案平台”中,选择“配置管理器…”
  • 从“活动解决方案平台:”中选择
  • 在“键入或选择新平台:”中,如果尚未选择,请选择“x64”。确保从“Win32”配置复制设置。单击“确定”。单击“关闭”退出配置管理器
  • 在解决方案资源管理器中右键单击tinyxml项目。选择“属性”
  • 对于“配置:”,选择“所有配置”。同样,对于“平台:”选择“所有平台”
  • 关于配置属性→ 常规页面,将“配置类型”更改为“动态库(.dll)”。将“目标扩展名”更改为“.dll”。单击“确定”退出tinyxml属性页对话框
  • 选择“发布”配置和“x64”平台
  • 再次右键单击解决方案资源管理器中的tinyxml项目,然后选择“重建”
  • tinyxml\u 2\u 6\u 2\tinyxml\x64\Release
    中,您将找到
    tinyxml.dll
    ,但没有导入库(
    tinyxml.lib
    )。这是因为没有导出符号。看


    如果您想使用共享库路径,则需要通过MSVC特定的
    \uuu declspec(dllexport)
    修改器导出所需的符号。请参阅。

    在编译库时定义TIXML\u USE\u STL,而不是链接到库的源时,会发生错误。最终的结果是,该库使用与使用该库的源代码不同的代码进行编译。

    请发布所有错误。我敢打赌,顶部的某个地方是一个错误,它说它找不到正确的库。您安装64位库了吗?没有。我只是尝试为x64平台构建tinyxml,但我做不到。以下是我在构建tinyxml时遇到的错误:
    error 1 error LNK1561:必须定义入口点path\tinyxml\u 2\u 6\u 2\tinyxml\LINK
    @JoachimPileborg请检查我的更新您到底在编译什么?dll,还是xmltest?怎么做呢?我试图构建xmltest并以x64平台为目标。我通过将所有与tinyxml相关的.h和.cpp文件添加到我的项目中解决了这个问题,现在它可以工作了,谢谢@Synxis:)这实际上并没有使用tinyxml共享库-它只是一些丑陋的静态链接形式。请注意,如果你想使用新版本的tinyxml,你需要重新编译你的应用程序(但它是否经常更改?)