Cmake (0) - 簡單 Project

1. 建立一個小專案:

建立一個小型 Cpp 專案如下:

.
├── CmakeLists.txt
├── build
├── include
│   └── greet.hpp
├── lib
│   └── greet.cpp
└── src
    └── main.cpp

greet.hpp

#ifndef __HELLO_HPP__
#define __HELLO_HPP__

void greet();

#endif

greet.cpp

#include<iostream>
using namespace std;

void greet() {
    cout << "Hello from greet" << endl; 
}

main.cpp

#include<greet.hpp>

int main() {
    greet();
}

2. 編寫 CmakeLists.txt:

Cmake 的語法滿直覺的,下面舉個簡單的例子:

project(HELLO)

# 和 Cmake 的 feature 有關,建議不要太新或太舊
cmake_minimum_required(VERSION 3.12)

# 編譯 share lib 命名為 greet
add_library(greet SHARED lib/greet.cpp include/greet.hpp)

# 加入 header 路徑
target_include_directories(greet PUBLIC include)

# 編譯 executable 並使用 libgreet
add_executable(main src/main.cpp)
target_link_libraries(main PUBLIC greet)

3. 使用 Cmake 建立 makefile:

進入 build 資料夾輸入 "cmake ..",這樣 cmake 會將間接產生的檔案放在 build 中,cmake 後的 ".." 代表執行時的路徑。

$ cd build
$ cmake ..

Cmake 執行後會在 build 資料夾產生 makefile,我們可以執行 "make" 指令進行編譯。編譯後的 executable 為 main。

$ make
$ ./main

留言

熱門文章