cmake 和 makefile的模板

2021-10-10 05:23:55 字數 1602 閱讀 7677

這篇主要是最近在用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...