快捷搜索: 王者荣耀 脱发

Linux与Windows下CMake的安装与编译

一、背景介绍

“CMake”这个名字是"Cross platform Make"的缩写。虽然名字中含有"make",但是CMake和Unix上常见的“make”系统是分开的,而且更为高端。 它可与原生建置环境结合使用,例如:make、苹果的Xcode与微软的Visual Studio。

CMake是个一个开源的跨平台自动化建构系统,用来管理软件建置的程序,并不相依赖某特定编译器。可支持多层目录、多个应用程序与多个库。 它用配置文件控制建构过程(build process)的方式,这和Unix的make相似,只是CMake的配置文件取名为CMakeLists.txt。

CMake并不直接建构出最终的软件,而是产生标准的建构档(如Linux的Makefile或Windows Visual C++的projects/workspaces),最后再依一般的建构方式使用。

这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是CMake和SCons等其他类似系统的区别之处。

二、Linux下安装

在linux环境下打开网页浏览器,输入网址:,找到最新版本的位置。

使用源码安装

tar -xvf cmake-3.14.5.tar
cd cmake-3.14.5
./bootstrap 
make
make install

编译时提示 Could NOT find OpenSSL 的解决方法:

apt-get install libssl-dev

cmake 会默认安装在 /usr/local/bin 下面

查询cmake --version

cmake version 3.14.5

三、Linux编译代码

1、编写CMakeLists.txt文件

#1.cmake verson,指定cmake版本 
cmake_minimum_required(VERSION 3.2)

#2.project name,指定项目的名称,一般和项目的文件夹名称对应
PROJECT(test_sqrt)

#3.head file path,头文件目录
INCLUDE_DIRECTORIES(include)

#4.source directory,源文件目录
AUX_SOURCE_DIRECTORY(src DIR_SRCS)

#5.set environment variable,设置环境变量,编译用到的源文件全部都要放到这里,否则编译能够通过,但是执行的时候会出现各种问题,比如"symbol lookup error xxxxx , undefined symbol"
SET(TEST_MATH ${DIR_SRCS})

#6.add executable file,添加要编译的可执行文件
ADD_EXECUTABLE(${PROJECT_NAME} ${TEST_MATH})

#7.add link library,添加可执行文件所需要的库,比如我们用到了libm.so(命名规则:lib+name+.so),就添加该库的名称
TARGET_LINK_LIBRARIES(${PROJECT_NAME} m)

2、在终端,分别输入命令

mkdir build
cd build
cmake ..
make

四、Windows下安装

去官网,下载客户端

安装后, 确认是否安装成功

五、cmake转换为 VS2017工程

我们从github上,下载一个工程

它的结构如下

我们如何编译呢?

使用cmake-gui打开工程并生成vs工程文件

如图,

  1. 在"Where is the source code"文本框中,输入或者“browse”到源代码的根目录(包含CMakeLists.txt的文件夹)
  2. 在"Where to build the binaries" 文本框中,输入或者“browse”任何你喜欢的文件夹中——它会被用于输出构建结果(lib文件,头文件,dll文件以及执行程序。如果没有这个文件夹系统会帮你创建。注意,你可以按照需要声称到不同的文件夹中(但我们先不讨论这些细节)。
  3. 单击屏幕下方的Configure按键。
  4. 选择你的目标编译平台,例如"Visual Studio 2017"
  5. 当系统提示是否创建构建目录的时候选择Ok
  6. 等待configure执行结束
  7. 屏幕上现在会有一些配置设置,并用红色标记(这是用来指出你是第一次看到他们)。你可以在这里手动配置这些选项,不过现在我们只需要再次选择Configure。
  8. 等运行结束了选择"Generate"按键。
  9. 构建文件将会在你之前选择的文件夹下面产生,这时候就可以退出cmake来进行真正的编译工作。

以上就是使用CMake的过程!在你之前选择的文件夹中,你会发现有一系列工程文件,现在只需要找到并打开主项目工程文件(例如ZLToolKit.sln)。

参考:

经验分享 程序员 微信小程序 职场和发展