如何使用 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 来突出几个关键点。
- 转到 https://github.com/jbeder/yaml-cpp 并下载根库。
打开cmake gui和select源目录作为<my project>/yaml-cpp-master
select 构建的目录。 我会称之为 <my project>/yaml-cpp-master/codeblocks_build
按配置,然后检查所有值。
按生成并等待它完成。
在<my project>/yaml-cpp-master/codeblocks_build
中找到生成的代码块项目文件
像往常一样编译项目。
- 找到生成的 DLL 文件并link它们到你的项目中。
您收到此错误的原因是因为 cmake 正在尝试在目录 build
中查找源代码,该目录是新创建的,如教程中所示:
mkdir build
cd build
这是为了指定 cmake 在何处构建它,而不是从何处构建。如果您希望通过命令行使用它,您需要告诉 cmake 在哪里构建以及源代码在哪里。
然后要调用该库中的函数,您需要 link 头文件(以 .h
或 .hpp
开头的文件)和 DLL 库。
.cpp .c
等是实现的地方,但 .h .hpp
是定义的地方。
因此,当您像这样包含时:#include<something.h>
您包含了稍后由 .cpp 文件填充的定义,但是在库的情况下,它们是由 .dll
或 .o
我已经尝试“创建”库 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 来突出几个关键点。
- 转到 https://github.com/jbeder/yaml-cpp 并下载根库。
打开cmake gui和select源目录作为
<my project>/yaml-cpp-master
select 构建的目录。 我会称之为
<my project>/yaml-cpp-master/codeblocks_build
按配置,然后检查所有值。
按生成并等待它完成。
在
<my project>/yaml-cpp-master/codeblocks_build
中找到生成的代码块项目文件
像往常一样编译项目。
- 找到生成的 DLL 文件并link它们到你的项目中。
您收到此错误的原因是因为 cmake 正在尝试在目录 build
中查找源代码,该目录是新创建的,如教程中所示:
mkdir build
cd build
这是为了指定 cmake 在何处构建它,而不是从何处构建。如果您希望通过命令行使用它,您需要告诉 cmake 在哪里构建以及源代码在哪里。
然后要调用该库中的函数,您需要 link 头文件(以 .h
或 .hpp
开头的文件)和 DLL 库。
.cpp .c
等是实现的地方,但 .h .hpp
是定义的地方。
因此,当您像这样包含时:#include<something.h>
您包含了稍后由 .cpp 文件填充的定义,但是在库的情况下,它们是由 .dll
或 .o