国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

Linux 批量編譯目錄下文件的Makefile

發布時間:2011-2-27 15:48    發布者:hikesoso2010
關鍵詞: Linux , Makefile
1.在存放.c文件的目錄下編按如下方法編寫Makefile文件:  

#Makefile start..  
CC := gcc #根據需要添加其它如XX := g++  
CFLAGS := -Wall -O -g #優化,輸出調試信息,及所有警告  
TARGET :=argcv test hello unixio getuid #要編譯的目標名,文件名去后綴的  
#下面開始一一編譯了  
all:$(TARGET)  
@echo compileing...  
%.o:%.c  
$(CC) $(CFLAGS) -c $< #發現用-c和-o都是輸出一樣的,有點不明白  
clean:  
rm -rf  $(TARGET)  
#end Makefile  

2.執行make,輸出結果:  
[savant@savant-host prog]$ make  
gcc  -Wall -O -g   
argcv.c   -o argcv  
gcc  -Wall -O -g   
test.c   -o test  
gcc  -Wall -O -g   
hello.c   -o hello  
gcc  -Wall -O -g   
unixio.c   -o unixio  
gcc  -Wall -O -g   
getuid.c   -o getuid  

3.另外,如果這個目錄是存放的一個項目的文件,所有的文件最終生成一個可執行文件,用下面的Makefile:  
CC = gcc  
LD = gcc  
CFLAGS = -Wall -c  
LDFLAGS = -lpthread #還可以加入INCLUDES和LIBS變量,視情況而定  
SRCS = $(wildcard *.c)  #SRCS的值就是當前面目錄下面所有的以.c結尾的源文件  
OBJS = $(patsubst %c,%o,$(SRCS))  #SRCS目錄下創建c文件相對的o文件  
TARGET = myapp   #最終鏈接生成的目標名  
.PHONY: all clean  
all: $(TARGET)  
$(TARGET): $(OBJS)  
$(LD) $(LDFLAGS) -o $@ $^  
%o: %c  
$(CC) $(CFLAGS) -o $@ $<  
clean:  
@rm -f *.o $(TARGET)  
編譯當前Makefile所在目錄下的所有.c文件  

執行  
make  
make clean
本文地址:http://www.4huy16.com/thread-56092-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
cqzy6666 發表于 2011-3-1 10:48:45
很好。1
ncchengang 發表于 2011-3-1 10:49:43
謝謝,
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • “芯”光璀璨,鵬城共賞——2025 Microchip中國技術精英年會深圳站回顧
  • 電動兩輪車設計生態系統
  • Microchip第22屆中國技術精英年會上海首站開幕
  • 常見深度學習模型介紹及應用培訓教程
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表