1

我正在尝试在 Visual Studio 8 2005 下使用“yaml-cpp-0.3.0”创建 dll,并出现“安装”、“运行测试”的链接错误

错误 1 ​​错误 LNK2019: 无法解析的外部符号 "void __cdecl YAML::operator>>(class YAML::Node const &,class YAML::Binary &)" (??5YAML@@YAXABVNode@0@AAVBinary@0@@Z ) 在函数“public: class YAML::Binary const __thiscall YAML::Node::to(void)const”中引用 (??$to@VBinary@YAML@@@Node@YAML@@QBE?BVBinary@1@XZ ) 解析器测试.obj

错误 2 致命错误 LNK1120: 1 unresolved externals ....\yaml-cpp_dll\build\test\Debug\run-tests.exe 1

使用用户在http://code.google.com/p/yaml-cpp/issues/detail?id=88上提到的一般步骤

  1. cd yaml-cpp for 'yaml-cpp-0.3.0'
  2. mkdir 构建
  3. 光盘构建
  4. cmake -DBUILD_SHARED_LIBS=ON -G "Visual Studio 8 2005" ..

寻求帮助如何解决这个问题。任何输入表示赞赏。

4

1 回答 1

2

我在 Visual Studio 9 2008 中遇到了同样的链接错误。问题是在 binary.h 中声明的 >> 运算符未导出。在 binary.h 中完成以下修改后,一切正常:

#include "yaml-cpp/dll.h"  // add a new include to have YAML_CPP_API defined

...

// add the missing YAML_CPP_API
YAML_CPP_API void operator >> (const Node& node, Binary& binary); 
于 2012-10-27T09:35:16.543 回答