亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

具有多個可執行文件的makefile

具有多個可執行文件的makefile

C C++
紅糖糍粑 2019-07-12 15:38:11
具有多個可執行文件的makefile我正在嘗試編寫一個Makefile,它使用宏一次從多個文件創建多個可執行文件。我試著搜索以前回答的問題,但是,由于我對C語言編程和與GCC一起工作相當陌生,所以我無法找到我的問題的答案。到目前為止,我擁有的是:CC=gcc CFLAGS=-I.OBJ = ex1.c ex3.c EXECUTABLE = ex1 ex3 $(EXECUTABLE): $(OBJ)     gcc -o $@ $^ $(CFLAGS)clean:     rm -f $(EXECUTABLE)我想要這條線$(EXECUTABLE): $(OBJ)分別從ex1.cex3.c文件創建可執行文件EX1和EX3。
查看完整描述

3 回答

?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

一些建議(假設你使用GNU 制作,使,而不是別的東西)

首先,運行一次make -p,你就會明白什么是內置的規則make就是知道。特別是COMPILE.cLINK.c

然后,我建議

 CFLAGS= -g -Wall -I.

(因為你真的想-g用于調試,以及-Wall得到大多數警告)

你可能不需要

$(EXECUTABLE): $(OBJ)
    gcc -o $@ $^ $(CFLAGS)

然而,我建議在大多數其他規則之前添加

.PHONY: all clean

all: $(EXECUTABLES)

實際上,我會給你的Makefile(為GNU make!)如下

# file MakefileCC= gcc
RM= rm -vf
CFLAGS= -Wall -g
CPPFLAGS= -I.SRCFILES= ex1.c ex2.c ## or perhaps $(wildcard *.c)OBJFILES= $(patsubst %.c, %.o, 
$(SRCFILES))PROGFILES= $(patsubst %.c, %, $(SRCFILES)).PHONY: all clean

all: $(PROGFILES)clean:
     $(RM) $(OBJFILES) $(PROGFILES) *~## eof Makefile

記住附簽中的一個重要角色Makefile-S(行動部分規則)。在這個答案中,以四個空格開頭的行至少應該以附簽性格。

一旦一切都調試完畢,請考慮運行make clean把所有的東西都清理干凈,然后make -j CFLAGS=-O2 all與優化并行編譯所有內容。

最后,我建議使用remake跑步remake -x調試復雜Makefile-S

當然,我假設您的目錄只有一個文件程序。

順便說一句,還有其他建筑程序。也許你可以考慮奧麥克

不要忘記使用版本控制系統,例如吉特你的源文件?,F在也是學習這種工具的時候了。


查看完整回答
反對 回復 2019-07-12
?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

你已經接近了,但你需要一個模式規則:

$(EXECUTABLE): % : %.c

然后是一個默認規則,讓它同時構建兩個:

all: $(EXECUTABLE)


查看完整回答
反對 回復 2019-07-12
  • 3 回答
  • 0 關注
  • 977 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號