1.Cmake是什么
CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。
通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者ctest)、生成当前平台的安装包(make package)、生成源码包(make package_source)、产生Dashboard显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。
如果有嵌套目录,子目录下可以有自己的CMakeLists.txt。总之,CMake是一个非常强大的编译自动配置工具,支持各种平台,KDE也是用它编译的,感兴趣的可以试用一下。
准备活动:(1)安装cmake。下载地址: 根据自己的需要下载相应的包即可,Windows下可以下载zip压缩的绿色版本,还可以下载源代码。
Windows下CMake的使用 (2)运行cmake的方法。(GUI、命令行) CMake使用步骤:运行GUI的cmake界面:cmake-2.8.1-win32-x86\bin\cmake-gui.exe Windows下CMake的使用 执行Configure:运行之后,生成了如下文件:Windows下CMake的使用 生成Makefile:执行Generate之后生成如下文件:Windows下CMake的使用 运行make进行编译:Windows下CMake的使用 编译完成后,在build目录生成Tutorial.exe,运行Tutorial.exe 25就可以看到运行结果:Windows下CMake的使用 运行make install安装程序:Windows下CMake的使用 运行make test进行测试:Windows下CMake的使用 通过cmake tutorial学习CMake配置方法 可以在源代码的Tests/Turorial目录中找到这个手册对应的代码。
Windows下CMake的使用1、Step1。(如果不知道如何使用cmake,以及如何使用编译产生的Turorial.exe,可先看下前面“CMake使用步骤”的说明,它以Step4为例详细介绍了使用过程,Step1的配置可能不够完全,比如无法运行make install,无法运行make test,但可以参考。)
简单的程序编译。(1)运行GUI的cmake,指定要编译的源代码路径和二进制文件路径(会自动创建)。
Windows下CMake的使用 (2)点击Configure,配置成功后,再点击Generate。配置需要选择合适的编译器,虽然我安装了VC2008,但没有配置成功;选择Unix Makefiles,配置成功,它自动找到了DevC++下的gcc.exe等编译器。
Windows下CMake的使用 (3)在build3目录执行make,就能够编译生成Turorial.exe了。D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>make Linking CXX executable Tutorial.exe [100%] Built target Tutorial 可以运行一下Turorial.exe:D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>Tutorial.exe Tutorial.exe Version 1.0 Usage: Tutorial.exe number D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>Tutorial.exe 4 The square root of 4 is 22、Step2 把子目录编译为库,并且链接到最终的可执行文件。
include_directories ("${PROJECT_SOURCE_DIR}/MathFunctions") add_subdirectory (MathFunctions) # 使得子目录MathFunctions也能被编译# add the executable add_executable (Tutorial tutorial.cxx) target_link_libraries (Tutorial MathFunctions) 产生makefile:在GUI上点击Configure,之后Generate还是灰色,再次点击Configure,Generate就可以点击了。编译:。
2.cmake界面如何使用
看你是为了啥用这个了
cmake当然是要代码的啊
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CmakeLists.txt。
CMake 可以编译源代码、制作程式库、产生适配器(wrapper)、还可以用任意的顺序建构执行档。CMake 支持 in-place 建构(二进档和源代码在同一个目录树中)和 out-of-place 建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。CMake 也支持静态与动态程式库的建构。
3.linux cmakelist 怎么用
由于调试需要因此研究了一下cmake这个夸平台的编译工具的使用方法.1.本人的机器为ubuntu 10.04,在连网的情况下直接在终端输入:[cpp] view plain copy 在CODE上查看代码片派生到我的代码片root@zsh-linux:~#apt-get install cmake 安装完毕之后可以在/var/cache/apt/archives看到安装的.deb文件 或者在cmake官网下载cmake for linux 此时有个注意点是建议下载 cmake-2.8.4.tar.gz 而不是cmake-2.8.4-Linux-i386.tar.gz 下载完成后解压[cpp] view plain copy 在CODE上查看代码片派生到我的代码片root@zsh-linux:/opt#tar -zxvf cmake-2.8.4.tar.gz 然后 cd 到cmake-2.8.4目录下 root@zsh-linux:/opt/cmake-2.8.4# root@zsh-linux:/opt/cmake-2.8.4# ./bootstrap root@zsh-linux:/opt/cmake-2.8.4# make root@zsh-linux:/opt/cmake-2.8.4# make install 安装完毕后查看是否安装成功: root@zsh-linux:/opt/cmake-2.8.4# cmake --version cmake version 2.8.4 有以上信息表示安装cmake成功。
2.cmake 的使用 (1)创建一个工程目录文件夹,然后创建一个hello.c[cpp] view plain copy 在CODE上查看代码片派生到我的代码片#include int main() { printf(“hello,this is my first using cmake project/n”); return 0; } (2)然后创建一个build目录(用于编译生成的相应文件),与hello.c目录同级 (3)编写CMakeLists.txt内容如下:(于hello.c目录同级)[cpp] view plain copy 在CODE上查看代码片派生到我的代码片 cmake_minimum_required(VERSION 2.8) PROJECT(cmake_test) SET(SRC_LIST main.c) INCLUDE_DIRECTORIES(/usr/include/glib) MESSAGE(STATUS "This is BINARY dir "${HELLO_BINARY_DIR}) MESSAGE(STATUS "This is SOURCE dir "${HELLO_SOURCE_DIR}) ADD_EXECUTABLE(hello ${SRC_LIST}) (4)进入build目录输入 cmake ..[cpp] view plain copy 在CODE上查看代码片派生到我的代码片root@zsh-linux:/home/cmake_test/build# cmake .. 若编译成功在build目录下会生成相应文件,其中有个makefile文件 有可能会出现问题: CMAKE_CXX_COMPILER-NOTFOUND" was not found 解决方法:[cpp] view plain copy 在CODE上查看代码片派生到我的代码片root@zsh-linux:/home/cmake_test/build# apt-get install g++ (可选)cmake -D CMAKE_CXX_COMPLIER=”g++”CMAKE -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=”/usr/local” (5)输入make 命令执行成功后在build目录下会看到可执行的hello (6)./hello 输出 hello,this is my first usingcmake project。 注:这只适用于简单的工程,若复杂的工程项目请参考munity-features 无
Profiling --disable-profiling(默认启用) -DENABLE_PROFILING=0(默认启用)
pstack --without-pstack 无(新版移除该功能)
汇编字符串函数 --enable-assembler 无
构建类型 --build=x86_64-pc-linux-gnu 没有等效参数
交叉编译主机 --host=x86_64-pc-linux-gnu 没有等效参数
客户端标志 --with-client-ldflags=-lstdc++ 无
线程安全标志 --enable-thread-safe-client 无
注释存储类型 --with-comment='string' -DWITH_COMMENT='string'
Shared/static binaries --enable-shared --enable-static 无
内存使用控制 --with-low-memory 无