我們常常改別人已經寫好的 open source 專案, 讓我有一種感覺 … 似乎大的系統都會有一套 building system, 先解析平台上的 toolchain, 使得系統可以容易安裝到其他平台上. 在 Unix 世界裡面, 最常見的就是 GNU Building System. 也就是你常見的先下 .configure -參數 指令, 然後會產生一堆 Makefile. 使用 building system 有另外一個好處, 那就是我們的 source code 就不會被某個編譯環境鎖住了 (ex: Visual Studio .Net). 今天要介紹的是 CMake! CMake 指令, 可以讓我們的使用者更容易把程式建構於不同的平台. 重要的是, 它可以讓我選擇要產生 Makefile 或 Visual Studio .Net 的專案檔 (sln 專案檔). 本文的主要結構為: 1. 最簡單的 CMakeLists.txt 範例 2. 如何在 Windows 下, 自動產生 Visual Studio .Net 專案檔
工具:
達成的目的, 如下所示: 先把範例端上來,如沒編輯工具請用windows 記事本fun.cpp
- int add(int a,int b){
- return a+b;
- }
複製代碼 fun.h
main.cpp
- #include "fun.h"
- #include <stdio.h>
- int main(){
- int ans=add(1,2);
- printf("ans=%d",ans);
- return 0;
- }
複製代碼
要做的事 1. 建立一個 library 檔稱為 MyLibrary, 裡面包含 fun.cpp 2. 自動建立 makefile, 把 main.cpp 與 MyLibrary 連接並且編譯. 用 cmake 該怎麼作? Step 1: 寫一個 CMakeLists.txt, 描述該怎麼編譯你的 source CMakeLists.txt - project(MyProject)
- add_library(MyLibrary fun.cpp) # 建立程式庫 MyLibrary
- add_executable(MyProgram main.cpp) # 建立執行檔 MyProgram
- # 產生執行檔 MyProgram 與 程式庫 MyLibrary 連結指令
- target_link_libraries(MyProgram MyLibrary)
複製代碼Step 2: 把它與你的 source files 放在一起
Step 3: 開啟CMAKE,我設定的路徑 a. 指定 source code 的位置在: cmaketest/source b. 編譯後的結果放在: cmaketest/bin
Step 4:選擇 [Generate] 開始產生 Visual Studio 2019 專案檔
|