本文共 2266 字,大约阅读时间需要 7 分钟。
CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如 Unix 的 Makefile 或Windows Visual C++ 的 projects/workspaces 。文件 CMakeLists.txt 需要手工编写,也可以通过编写脚本进行半自动的生成。CMake 提供了比 autoconfig 更简洁的语法。在 linux 平台下使用 CMake 生成 Makefile 并编译的流程如下:
编写
CmakeLists.txt
。
执行命令
“
cmake PATH
”
或者
“
ccmake PATH
”
生成
Makefile ( PATH
是
CMakeLists.txt
所在的目录
)
。
使用
make
命令进行编译。
我用CMake并不关注它的跨平台特性,因为我只专注于64位 Linux C++ server领域。
sudo apt-get install cmake chenshu@chenshu-ubuntu:~$ cmake —version cmake version 2.8.3mkdir -p examples/helloworld
cd examples/helloworld 创建main.cpp 文件,代码如下: 创建CMakeLists.txt文件,配置如下: 在同目录下,运行cmake . chenshu@chenshu-ubuntu:~/Ubuntu One/c++/cmake/examples/helloworld$ cmake . — The C compiler identification is GNU — The CXX compiler identification is GNU — Check for working C compiler: /usr/bin/gcc — Check for working C compiler: /usr/bin/gcc — works — Detecting C compiler ABI info — Detecting C compiler ABI info - done — Check for working CXX compiler: /usr/bin/c++ — Check for working CXX compiler: /usr/bin/c++ — works — Detecting CXX compiler ABI info — Detecting CXX compiler ABI info - done — This is BINARY dir /home/chenshu/Ubuntu One/c++/cmake/examples/helloworld — This is SOURCE dir /home/chenshu/Ubuntu One/c++/cmake/examples/helloworld — Configuring done — Generating done — Build files have been written to: /home/chenshu/Ubuntu One/c++/cmake/examples/helloworld Makefile以及其他一些文件被cmake生成了。执行make命令,hello二进制文件被编译出来。运行./hello,可以看到结果。 Hello World from Main! make VERBOSE=1 可以看到详细的编译过程。 make clean 就可以清理工程HelloWorld采用内部构建,cmake产生的代码和自己的源代码文件在同一个目录,非常不好。因此需要采用cmake的外部构建方式。
创建helloworld2目录 这次创建一个src目录存放源代码,doc目录存放项目文档, CMakeLists.txt需要出现在项目根目录和src目录中。 项目根目录下的内容如下: project (HelloWorld2) add_subdirectory(src bin) src目录下内容如下: add_executable(hello2 main.cpp) 创建一个build目录 cd build cmake .. make build/bin下会找到hello2可执行文件。在src/CMakeLists.txt文件中添加一行: set(CMAKE_BUILD_TYPE Debug)
http://wenku.baidu.com/view/7e5a8f145f0e7cd18425364a.html
转载地址:http://zorkb.baihongyu.com/