這篇主要是最近在用makefile和cmake。這玩意吧,就賊容易忘,我就默默寫一篇小短文記錄一下。就是放乙個模板,以後直接在模板上做改動。
# executable為目標的可執行檔名, 可以根據具體的情況對其進行修改。
executable :=
test
# 修改隱含規則中巨集
cross_compile = /usr/bin/
cc =
$(cross_compile)
gcc
# 列出工作目錄下所有以「.c」結尾的檔案,以空格分隔,將檔案列表賦給變數source
source :=
$(wildcard *.c)
# 呼叫patsubst函式,生成與原始檔對應的「.o」檔案列表
objs :=
$(patsubst %.c, %.o, $(source)
)# 編譯所有".o"檔案生成可執行檔案
all :
$(executable)
$(executable)
:$(objs)
@$(cc)
$(objs)
-o $(executable)
# 宣告偽目標
.phony : clean
# 刪除所有中間檔案和目標檔案
clean :
@rm -f $(executable)
$(objs)
*.o
# cmake verson,指定cmake版本
cmake_minimum_required(version 3.5)
# 設定gcc或者g++對應的路徑
# set(cmake_cxx_compiler /usr/bin/g++)
# project name,指定專案的名稱,一般和專案的資料夾名稱對應
project(example)
# head file path,頭檔案目錄
include_directories(
include
)# source directory,源檔案目錄
aux_source_directory(. dir_srcs)
# 指定一些編譯選項
#set(cmake_cxx_flags "-g -wall -i c:\\program files (x86)\\codeblocks\\mingw\\include -l c:\\program files (x86)\\codeblocks\\mingw\\lib")
# add executable file,新增要編譯的可執行檔案
#add_executable($ $)
add_executable($$
)# 生成可執行檔案(這是指定某乙個檔案)
#add_executable($ main.cpp)
# 生成.so ($代表遍歷源目錄)
add_library(
$ shared $
)
總體而言,makefile要寫的東西要繁瑣一些,還有很多符號,我過兩天就會忘了(捂臉)。cmake感覺就是乙個自動生成makefile的東西。相對而言更簡單一些~ Makefile和Cmake的聯絡與區別
c c 程式設計師肯定離不開makefile和cmake,因為如果對這兩個工具不熟悉,那麼你就不是乙個合格的c c 程式設計師。本文對makefile和cmake,及它們的使用進行了詳細的介紹,本文的目錄如下 一 makefile詳解 1.1 makefile語法 1.2 makefile示例 二 ...
使用cmake來生成makefile
cmake 提供了比 autoconfig 更簡潔的語法 在 linux 平台下使用 cmake 生成 makefile 並編譯的流程如下 編寫cmakelists.txt。執行命令 cmake path 或者 ccmake path 生成makefile path是cmakelists.txt所在...
CMake 工程呼叫 Makefile 編譯專案
本文主要介紹如何將乙個依賴 makefile 專案 midg 移植到 cmake 上。首先介紹專案檔案結構,檔案主要由三個目錄組成 3rdparty include src其中,3rdparty中包含兩個外部函式庫,即metis與parmetis,生成兩個靜態鏈結庫libmetis.a與libpar...