使用 yaml-cpp 源代码创建 dll

Posted

技术标签:

【中文标题】使用 yaml-cpp 源代码创建 dll【英文标题】:create dll out of yaml-cpp source code 【发布时间】:2018-04-08 13:15:37 【问题描述】:

Windows 新手。我需要在项目中使用 yaml-cpp 库,但我似乎无法在 windows 中编译它。我尝试了一切(一切!)我能找到但没有地方有完整的答案,只是这个过程的提示。但这些提示并没有太大帮助。 我确实在 Ubuntu 中创建了共享库,但无法在 Windows 中创建 dll。 有人可以给出从源代码中获取 dll 的完整解释吗? (我也很感激解释如何使用包含它的 dll)。

使用 Visual Studio 2015。

【问题讨论】:

你用过 CMake 吗?查看 CMakeLists.txt 将在 cmake-gui 中有一个选项来构建共享库。有了 Visual Studio 上的说明,您很可能仍然需要 .lib 文件,在这种情况下,它是一个导入库而不是静态库。 在 Ubuntu 中,我完成了所有步骤,一切正常。在 Windows 中,我也做了所有我认为需要做的事情,包括 CMake,但它仍然无法正常工作, 我希望您必须展示哪些部分不起作用才能获得帮助。不太可能有人会下载 yaml-cpp 并自行尝试以帮助您。您更有可能从认识 CMake 并识别您在步骤中犯的错误的用户那里获得帮助。 @drescherjm 我要求对获取库的编译过程进行完整解释,而不是获得另一个答案,为什么某些东西不起作用。没有好的文档可以从头到尾解释这一点。 【参考方案1】:

所以我终于明白了。 对于 linux 用户 - 使用 cmake。对于 Windows 用户 - 你可以,但我真的不推荐它,除非你需要交叉编译。使用视觉工作室:(解释为 VS 2017)

首先使用现有代码创建新项目。 您选择的文件夹应该是“src”(如果是 cpp-yaml)。 创建项目时需要选择项目类型(exe、动态或静态库),所以选择动态库创建.dll或静态创建.lib。

创建项目后,转到项目属性,转到 c/c++ 选项卡 --> 常规 --> “其他包含目录”,然后将路径添加到 headers 文件夹(“包含”)。不要在包含文件夹中添加“cpp-yaml”,只添加“include”。 现在建立。在控制台中,您可以看到创建库的位置。

要使用它,如果你制作了静态库,需要做 4 件事:

    添加到您的项目“#include cpp-yaml/yaml.h” 在属性中: 在选项卡“c/c++”--> 常规-->“附加包含目录”中,添加包含文件夹路径。 (和以前一样) 在“链接器”选项卡中 -->输入,将您的库名称添加到“附加依赖项”中(后跟分号) 在“链接器”选项卡中 --> 常规,将您的库的路径添加到“其他库目录”。

【讨论】:

以上是关于使用 yaml-cpp 源代码创建 dll的主要内容,如果未能解决你的问题,请参考以下文章

yaml-cpp:创建一个未定义的节点

链接 Yaml-cpp 和 Armadillo 共享库的 CMake 项目

yaml-cpp 创建一个新的空地图?

如何安装和使用 YAML-Cpp

将多行字符串添加到 Yaml-cpp 节点

如何使用 yaml-cpp 创建顶层对象?