[BuildRelease]跨平台构建工具Cmake
一 CMake
CMake 是一個(gè)跨平臺(tái)的構(gòu)建工具,通過一次的cmake script的編寫,能夠生成常見平臺(tái)常見IDE的project文件或maikefile文件,例如生成visual studio project文件,eclipse project文件,makefile等;同時(shí)相對于linux的automake工具生成makefile的過程相對簡單。
?
主頁:http://www.cmake.org/
參考:http://www.ibm.com/developerworks/cn/linux/l-cn-cmake/index.html
Eclipse 插件:http://www.cthing.com/CMakeEd.asp
二 特點(diǎn):
1)配置文件是cmake script,cmake script是特定于software build的專用編程語言;
2)內(nèi)置的對c,c++,java,fortran的依賴的分析;
3)通過cmake script支持swig,qt,fltk;
4)支持幾乎所有的IDE工程文件或makefile的生成,例如visual studio 6-10,eclipse cdt等;
6)使用傳統(tǒng)的時(shí)間戳來檢測文件內(nèi)容的改變;
7)支持并行build;
8)依賴的globle view,可以使用cmake產(chǎn)生依賴圖;
9)支持cross compiler。
10)支持幾乎所有的平臺(tái);
11)與ctest,cpack,cdash 集成;
?
三 CMake的generators
1)cmake在windows上的generator的列表:
2) Linux下generator:
? Unix Makefiles????????????? = Generates standard UNIX makefiles.
? CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
? Eclipse CDT4 - Unix Makefiles?? = Generates Eclipse CDT 4.0 project files.
? KDevelop3?????????????????? = Generates KDevelop 3 project files.
? KDevelop3 - Unix Makefiles? = Generates KDevelop 3 project files.
3)參考:http://www.cmake.org/Wiki/CMake_Generator_Specific_Information
?
四 實(shí)例
1)過程簡單描述
# 編寫 CmakeLists.txt。
# 執(zhí)行命令 “cmake PATH”?生成 Makefile ( PATH 是 CMakeLists.txt 所在的目錄 )。
# 使用 make 命令進(jìn)行編譯。?
2)簡單實(shí)例(在windows上編譯sample工程)
1】實(shí)例文件結(jié)構(gòu)如下:
2】main.cpp如下:
#include<iostream>?
int?main()
{
?????std::cout<<"Hello?word!"<<std::endl;
?????return?0;
}
?3】Cmakelists.txt如下:
project(Sample)cmake_minimum_required(VERSION?2.8)
aux_source_directory(.?DIR_SRCS)
add_executable(Sample?${DIR_SRCS})
?4】cmakefiles.txt的解釋:
"#"后面的內(nèi)容為注釋。
命令由命令名稱、小括號(hào)和參數(shù)組成,參數(shù)之間使用空格進(jìn)行間隔。
PROJECT(sample)命令用來表示項(xiàng)目名稱為smaple。
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)用來限定需要cmake2.6的版本。
aux_source_directory(<dir> <variable>)該命令會(huì)把參數(shù) <dir> 中所有的源文件名稱賦值給參數(shù) <variable>。
ADD_EXECUTABLE(sample ${DIR_SRCS})表示將變量 DIR_SRCS 中的源文件編譯成一個(gè)名稱為sample的可執(zhí)行文件。
5】生成VS工程文件和build如下:
6】生成Eclipse+MinGW的工程文件如下:
?
五語法
ADD_SUBDIRECTORY( src )指明本項(xiàng)目包含一個(gè)子目錄 src 。
TARGET_LINK_LIBRARIES( main Test )指明可執(zhí)行文件 main 需要連接一個(gè)名為Test的鏈接庫 。
六參考
http://www.ibm.com/developerworks/cn/linux/l-cn-cmake/
http://en.wikipedia.org/wiki/CMake?
?
完!轉(zhuǎn)載于:https://www.cnblogs.com/itech/archive/2011/09/14/2176234.html
總結(jié)
以上是生活随笔為你收集整理的[BuildRelease]跨平台构建工具Cmake的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript弹出div(一)
- 下一篇: 【转】Service深入分析