windows下CMake使用圖文手冊 Part 1

來源:互聯網
上載者:User

標籤:

維基百科介紹“CMake是個開源的跨平台自動化建構系統,它用設定檔控制建構過程(build process)的方式和Unix的Make相似,只是CMake的設定檔取名為CMakeLists.txt。Cmake並不直接建構出最終的軟體,而是產生標準的建構檔(如Unix的Makefile或WindowsVisual C++的projects/workspaces),然後再依一般的建構方式使用。這使得熟悉某個整合式開發環境(IDE)的開發人員可以用標準的方式建構他的軟體,這種可以使用各平台的原生建構系統的能力是CMake和SCons等其他類似系統的區別之處。”

1. CMake安裝

https://cmake.org/download/, windows下載cmake-3.5.2-win32-x86.msi

安裝後的介面

2. Hello World Example

假設你建立了檔案夾 E:\Playground\CMakeExamples\HelloWorld,下面有一個檔案HelloWorld.cpp

#include <iostream>          int main(){   std::cout<<"Hello World!"<<std::endl;   return 0;}

在同一檔案夾下面建立CMakeLists.txt檔案

cmake_minimum_required(VERSION 3.0)
project (hello)
add_executable(hello helloworld.cpp)

  • 第一行設定需要的CMake最低版本號碼,一般設定為你目前使用的CMake版本號碼,便於後續維護工作。
  • 第二行設定project名字
  • 第三行add_executable,第一個參量為產生可執行檔名字,取決於所在平台會產生hello.exe,或者hello.a或其他格式。第二個參量為所需要的源檔案清單。

圖形介面下運行:

 

在Where is the source code後面填寫CMakeLists.txt所在檔案夾,注意是CMakeLists.txt所在檔案夾,不是HelloWorld.cpp所在檔案夾。後面例子會講到源檔案與CMakeLists不在同一目錄下的情形。

Where to build the binaries: 可以是任意一個檔案夾,保持產生的專案檔,這裡我選擇產生在Build檔案夾下。設定後點擊 Configure後你需要選擇項目產生器,這裡我選擇Visual Studio 14 2015 Win64

點擊Finish後

CMake自動化佈建各種變數,不用理會紅色部分,點擊Generate,在Build檔案夾下面會產生

產生了hello.sln,project呢,除了hello.vcxproj還有ALL_BUILD.vcxproj和ZERO_CHECK.vcxproj。

stackoverflow上給的答案是

After some more searching, I found the answer at https://cmake.org/pipermail/cmake/2008-November/025448.html:

Armin Berres — 11/22/2008, 3:12:41 PM

ZERO_CHECK will rerun cmake. You can/should execute this after changing something on your CMake files.

ALL_BUILD is simply a target which builds all and everything project in the active solution, I guess one can compare it to "make all".

你可以用visual studio開啟hello.sln,編譯,運行。這裡我們用msbuild編譯。如果命令列提示msbuild無法找到,請先添加C:\Windows\Microsoft.NET\Framework64\v4.0.30319到系統PATH變數中。

在Build目錄下,運行

msbuild hello.vcxproj

運行Debug\hello.exe,查看輸出。

如果要編譯成Release,運行

msbuild /p:Configuration=Release hello.vcxproj

windows下CMake使用圖文手冊 Part 1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.