使一個Makefile同時生成多個可執行文件


看unp(UNIX網絡編程)的時候一些小例子需要編譯多個文件,順便學了一下Makefile文件的編寫。

當需要在一個Makefile文件里面生成多個可執行文件的時候遇到了困難,經過查詢得到解決方案如下:

這個例子中我需要生成的是tcpserv01和tcpcli01兩個可執行文件。

其中.PHONY 說明all是個“偽目標”,make不會生成“all”這個可執行文件,而是執行后面的多個目標。

 1 all : tcpserv01 tcpcli01
 2 .PHONY : all
 3 CFLAGS = -I.
 4 OBJS1 = tcpserv01.o str_echo.o
 5 OBJS2 = tcpcli01.o str_cli.o
 6 CXX = g++
 7 
 8 tcpserv01 : $(OBJS1)
 9     $(CXX) -o tcpserv01 $(OBJS1) $(CFLAGS)
10 
11 tcpcli01 :$(OBJS2)
12     $(CXX) -o tcpcli01 $(OBJS2) $(CFLAGS)
13 
14 $(OBJS1):%.o:%.cpp
15     $(CXX) -c $< $(FLAGS) -o $@  
16 
17 $(OBJS2):%.o:%.cpp
18     $(CXX) -c $< $(FLAGS) -o $@
19 
20 .PHONY:clean
21 clean:
22     -$(RM) tcpserv01 tcpcli01 $(OBJS1) $(OBJS2)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM