c c 混合程式設計Makefile範例

2021-07-26 07:19:10 字數 1366 閱讀 3542

以下是本人寫的makefile模板例項,帶有比較詳細的注釋:

# 指令編譯器和選項

cc=g++

#-g 新增gdb除錯資訊;-wall 提示warning資訊;-o3 表示第3級優化;

cflags=-g -wall -o3

# 可執行檔案  

target=main  

# c檔案  

srcs =  \

main.c

srcpps = test.cpp

#./test-add/test-add.c \  

#./test-sub/test-sub.c

#標頭檔案

#inc = -i./test-add -i./test-sub

# 目標檔案  

objs = $(srcs:.c=.o) $(srcpps:.cpp=.o)

#objs = $(srcs:.c=.o)

# 庫檔案  

#共享庫

#dlibs = -lm  

# 鏈結為可執行檔案  

$(target):$(objs)

#所有的目標

#    @echo target:$@

#去除重複的所有的依賴

#    @echo objects:$^

#目標的第乙個依賴

#    @echo last:$<

#如果增加目標庫注釋下面一句,開啟這一句#    $(cc) -o $@ $^ $(dlibs)  

$(cc) -o $@ $^

clean:

rm -rf $(target) $(objs)

# 連續動作,請清除再編譯鏈結,最後執行

exec:clean $(target)

@echo 開始執行

./$(target)

@echo 執行結束

# 編譯規則 $@代表目標檔案 $< 代表第乙個依賴檔案

%.o:%.c

#沒有加頭檔案目錄時

$(cc) $(cflags) -o $@ -c $<

%.o:%.cpp

$(cc) $(cflags) -o $@ -c $<

#加入頭檔案目錄時

#    $(cc) $(cflags) $(inc) -o $@ -c $<

以下是源**:

main.c:

#include"test.h"

int main()

test.cpp:

#include

void pri()

test.h:

#ifndef test_h

#define test_h

void pri();

#endif

C C 混合程式設計

c中呼叫c c 中呼叫c都會用到extern c 但兩者的意義卻大不一樣!例 c void foo int x c c code extern c void foo int x 讓c 聯結器能通過過類似於 foo來查詢此函式,而非類似於 foo int這樣的符號。使用extern c 則是告訴編譯器...

C C 混合程式設計

分類 linux c c 2012 12 26 09 51 655人閱讀收藏 舉報cc 混合程式設計 externc cplusplus 現在,我們就來慢慢的了解吧。一 extern c 的作用 最重點 1.extern c 的真實目的是實現類c和c 的混合程式設計。extern c 是由 提供的乙...

C C 混合程式設計

現在,我們就來慢慢的了解吧。一 extern c 的作用 最重點 1.extern c 的真實目的是實現類c和c 的混合程式設計。extern c 是由 提供的乙個連線交換指定符號,用於告訴 這段 是 函式。extern c 後面的函式不使用的c 的名字修飾,而是用c。這是因為c 編譯後庫中函式名會...