使用 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的主要内容,如果未能解决你的问题,请参考以下文章