如何使用 cmake 在我的代码中包含一个库?

How to include a library in my code using cmake?

我已经尝试“创建”库 yaml-cpp,但不确定我是否做对了,但我该如何构建它? 在教程 (https://github.com/jbeder/yaml-cpp/blob/master/README.md) 中它说在构建目录中 运行 cmake,但是 cmake 找不到 cmakelist 文件,所以我在源目录中做了它,但是然后呢?如何构建它?

如果有人可以让新手一步步获得库(或任何真正的库)以便我可以将其包含在我的代码中,那就太棒了。

我正在使用 Windows 7,并使用终端(使用 Codeblocks MinGW gcc/g++)和 sublime text 3 编辑器进行编译。

编辑:我没有 "make"。我怎样才能得到这个?

这是分步指南: 为了这个答案的目的,我将使用 cmake gui 来突出几个关键点。

  1. 转到 https://github.com/jbeder/yaml-cpp 并下载根库。
  2. 打开cmake gui和select源目录作为<my project>/yaml-cpp-master

  3. select 构建的目录。 我会称之为 <my project>/yaml-cpp-master/codeblocks_build

  4. 按配置,然后检查所有值。

  5. 按生成并等待它完成。

  6. <my project>/yaml-cpp-master/codeblocks_build

  7. 中找到生成的代码块项目文件
  8. 像往常一样编译项目。

  9. 找到生成的 DLL 文件并link它们到你的项目中。

您收到此错误的原因是因为 cmake 正在尝试在目录 build 中查找源代码,该目录是新创建的,如教程中所示:

mkdir build
cd build

这是为了指定 cmake 在何处构建它,而不是从何处构建。如果您希望通过命令行使用它,您需要告诉 cmake 在哪里构建以及源代码在哪里。

然后要调用该库中的函数,您需要 link 头文件(以 .h.hpp 开头的文件)和 DLL 库。

.cpp .c 等是实现的地方,但 .h .hpp 是定义的地方。

因此,当您像这样包含时:#include<something.h> 您包含了稍后由 .cpp 文件填充的定义,但是在库的情况下,它们是由 .dll.o