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

时间:2016-10-28 15:16:05

标签: c++ cmake yaml-cpp

我试图'make'库yaml-cpp,不确定我做得对,但我该如何构建呢? 在教程(https://github.com/jbeder/yaml-cpp/blob/master/README.md)中,它说在构建目录中运行cmake,但是cmake找不到cmakelist文件,所以我在源目录中完成了,但那么呢?我该如何构建它?

如果有人可以一步一步地让新手获得图书馆(或任何图书馆),那么我可以将它包含在我的代码中,那将是非常棒的。

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

编辑:我没有“制造”。我怎么能得到这个?

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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

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

  7. 中查找生成的codeblocks项目文件
  8. 像往常一样编译项目。

  9. 找到生成的DLL文件并将它们链接到您的项目。
  10. 您收到此错误的原因是因为cmake正在尝试查找新创建的目录build中的源代码,如教程中所示:

    mkdir build
    cd build
    

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

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

    .cpp .c等是实现的位置,但.h .hpp是定义的位置。

    所以当你这样包括:#include<something.h>时,你会包含以后由.cpp文件填充的定义,但是对于库而言,它们是从.dll或{{1}填充的}