日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[BuildRelease]跨平台构建工具Cmake

發布時間:2024/9/5 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [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:

The following generators are available on this platform:
? 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。