[BuildRelease]跨平台构建工具Cmake
一 CMake
CMake 是一個跨平臺的構建工具,通過一次的cmake script的編寫,能夠生成常見平臺常見IDE的project文件或maikefile文件,例如生成visual studio project文件,eclipse project文件,makefile等;同時相對于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
二 特點:
1)配置文件是cmake script,cmake script是特定于software build的專用編程語言;
2)內置的對c,c++,java,fortran的依賴的分析;
3)通過cmake script支持swig,qt,fltk;
4)支持幾乎所有的IDE工程文件或makefile的生成,例如visual studio 6-10,eclipse cdt等;
6)使用傳統的時間戳來檢測文件內容的改變;
7)支持并行build;
8)依賴的globle view,可以使用cmake產生依賴圖;
9)支持cross compiler。
10)支持幾乎所有的平臺;
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
?
四 實例
1)過程簡單描述
# 編寫 CmakeLists.txt。
# 執行命令 “cmake PATH”?生成 Makefile ( PATH 是 CMakeLists.txt 所在的目錄 )。
# 使用 make 命令進行編譯。?
2)簡單實例(在windows上編譯sample工程)
1】實例文件結構如下:
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的解釋:
"#"后面的內容為注釋。
命令由命令名稱、小括號和參數組成,參數之間使用空格進行間隔。
PROJECT(sample)命令用來表示項目名稱為smaple。
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)用來限定需要cmake2.6的版本。
aux_source_directory(<dir> <variable>)該命令會把參數 <dir> 中所有的源文件名稱賦值給參數 <variable>。
ADD_EXECUTABLE(sample ${DIR_SRCS})表示將變量 DIR_SRCS 中的源文件編譯成一個名稱為sample的可執行文件。
5】生成VS工程文件和build如下:
6】生成Eclipse+MinGW的工程文件如下:
?
五語法
ADD_SUBDIRECTORY( src )指明本項目包含一個子目錄 src 。
TARGET_LINK_LIBRARIES( main Test )指明可執行文件 main 需要連接一個名為Test的鏈接庫 。
六參考
http://www.ibm.com/developerworks/cn/linux/l-cn-cmake/
http://en.wikipedia.org/wiki/CMake?
?
完!轉載于:https://www.cnblogs.com/itech/archive/2011/09/14/2176234.html
總結
以上是生活随笔為你收集整理的[BuildRelease]跨平台构建工具Cmake的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript弹出div(一)
- 下一篇: 【转】Service深入分析