CMake入門實踐

爲了更好的代碼管理,選擇一款make工具很是重要,cmake取百家之長,如今在github上已是工程管理的常客了,最大的優點是跨平臺。本文將避開理論,直接教你如何在windows和linux上實現cmake的代碼管理。linux

開始以前

cmake 的安裝,這是必須的,不須要我教了哈。
Windows和linux系統都安裝起來。ios

讓咱們直接開始

先手擼一個main.cppc++

#include <iostream>

int main(int argc, char const *argv[])
{
    /* code */
    std::cout << "Hello CMake World "<<std::endl;
    return 0;
}

再碼起一個cmake的腳本文件,統一命名CMakeLists.txt,內容以下:git

cmake_minimum_required(VERSION 3.10.2)
add_executable(Main main.cpp)
  • 第一句話是cmake的最小版本需求,
  • 第二句話則說明了最後的執行文件的名稱,以及須要包含的cpp文件。

main.cpp 和CMakeLists.txt放在同一個目錄下便可。github

兩個文件完成後,恭喜你,代碼版本能夠發佈了,你成功完成了代碼的所有工做。好比你須要提交到github上,丟這兩個文件便可。這些代碼,既支持linux也支持Windows。shell

等等,還須要什麼呢?對,編譯指導說明文檔。那就接着看吧!編程

編譯指導文檔

先高大上地寫上 how to build:json

須要cmake,最低版本3.10.2windows

  • linux下
    先在代碼文件夾下新建linux-build文件夾,而後在shell中執行
cd linux-build
cmake ../
make
./Main
  • windows下
    先在代碼文件夾下新建win-build文件夾,而後在Windows終端執行:
cd win-build
cmake ../ -G "Visual Studio 9 2008"
MSBuild.exe  Project.sln
./Debug/Main

分別完成以上四步,均可以看到結果:bash

Hello CMake World

解釋說明

一切看來,彷佛簡單的不像話,不管是linux仍是Windows的工程文件,cmake都能接管,只須要一個簡單的CMakeLists.txt文件便可。

  • 在linux下,經過cmake完成makefile文件的自動化生成,經過make編譯工程,一切都很完美。
  • window下彷佛還多了一些配置,這裏我在cmake時配置了-G參數,使用的Vs2008,使用其餘VS版本能夠參照填寫,執行後生成了工程文件Project.sln,這個是默認的名字,由於我沒有作配置說明,而後經過msbuild.exe 編譯該工程,默認是debug的,msbuild也有其編譯選項,後續有機會再說明。

以上,很是簡單的介紹了cmake的跨平臺特性,不管是管理Linux仍是Windows平臺的代碼,都很是合適,特別是跨平臺編程時,cmake能夠精簡不少的工做,後續會繼續深刻的學習cmake,同時發博文分享學習過程。

相關文章
相關標籤/搜索