cmake:Hello cmake

Ocean&&Star發表於2020-12-25

首先讓我們從最簡單的程式碼入手,先來體驗下cmake是如何操作的

編寫程式碼

mycmake$ tree
.
├── CMakeLists.txt
├── main.cpp

main.cpp內容如下:

#include <stdio.h>

int main(void)
{
	printf("Hello World\n");

	return 0;
}

CMakeLists.txt

# cmake的最低版本要求是2.8
cmake_minimum_required (VERSION 2.8)

# 設定C++標準為 C++ 11
set(CMAKE_CXX_STANDARD 11)

# 工程名叫demo
project (demo)

# 表示最終要生成的elf檔案的名字叫demo ,使用的原始檔是main.cpp
add_executable(demo main.cpp)

編譯執行

1、生成makefile

在終端下切到main.cpp所在的目錄下,然後輸入以下命令執行cmake

cmake .

在這裡插入圖片描述
再來看看目錄下的檔案
在這裡插入圖片描述
可以看到成功生成了Makefile,還有一些cmake執行時自動生成的檔案。

2、編譯

在終端下輸入make並回車

make

在這裡插入圖片描述
可以看到成功生成了可執行檔案

3、執行

./demo

在這裡插入圖片描述
執行成功!

PS: 如果想重新生成main,輸入make clean就可以刪除main這個elf檔案。

在這裡插入圖片描述

其他

CMakeLists.txt是應儲存所有CMake命令的檔案。在資料夾中執行cmake時,它將查詢該檔案,如果不存在,則cmake會退出並顯示錯誤。

add_executable()命令指定應從指定的原始檔(在本示例中為main.cpp)構建可執行檔案。add_executable()函式的第一個引數是要生成的可執行檔案的名稱,第二個引數是要編譯的原始檔的列表。

add_executable(demo main.cpp)
  • 最終生成的不一定要和專案名稱相同,比如可以生成叫aaa的可執行檔案
add_executable(aaa  main.cpp)
  • 專案名稱和可執行檔名稱相同
# 工程名叫demo
project (demo)

# 表示最終要生成的elf檔案的名字叫demo ,使用的原始檔是main.cpp
add_executable(${PROJECT_NAME}  main.cpp)

在此示例中,project()函式將建立一個值為$demo的變數${PROJECT_NAME}。然後可以將其傳遞給add_executable()函式以輸出“ demo”可執行檔案。