日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++ 的makefile文件实例

發布時間:2023/12/10 c/c++ 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++ 的makefile文件实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

首先聲明, 感謝九哥的幫助,因為從來沒寫過makefile, 所以一直是手動編譯,

然后有一次寫了三個文件, 需要編譯, 而我只編譯了一個文件, 所以一直出錯, 九哥告訴我用makefile更方便, 可以學習一下

于是我就寫了看了很多的blog, 然后向九哥要了這么個東西, 據說還有可以生成的工具

########################################### #Makefile for simple programs ########################################### #INC 是你項目包含的目錄 INC= #LIB是你需要鏈接的庫 LIB= -lpthread #CC是一個變量名 可以隨便起,這里代表你的編譯器 CC=g++ #LINK是鏈接的程序 LINK=g++ #LDFLAGS是鏈接的選項 LDFLAGS= #CC_FLAG 是編譯選項 CC_FLAG=-Wall -m64# PRG=操作符重載, 這里是目錄名字 PRG=aa # 這里是空格隔開, 不能是逗號,需要注意 # root@corleone:/opt/code/testC++/aa# ls # makefile mytime0.cpp mytime.h usertime0.cpp # 上面這是目錄下的文件, 那需要寫幾個.o的文件呢? 就這么寫 OBJ=mytime0.o usertime0.o#當你make 后 編譯器會去找 $(XXXX):$(xxxx) 的那一行 #你會發現它下面是一個 table縮進, table縮進 表示要執行那個命令 #然后編譯器會查看 "-o $@" 后面的目標有沒有生成或者更新,沒有就重新編譯那個目標文件 #比如這里$(OBJ)是各種.o文件, 那么就會先編譯這些.o文件 會去執行.cpp.o:下面的縮進命令$(PRG):$(OBJ)$(CC) $(INC) $(LIB) -o $@ $(OBJ)#.SUFFIXES表示后綴名 #這里表示要把INC下面的所有后綴是cpp或者c的編譯成.o文件 .SUFFIXES: .c .o .cpp .cpp.o:$(CC) $(CC_FLAG) $(INC) -c $*.cpp -o $*.o.PRONY:clean clean:@echo "Removing linked and compiled files......"rm -f $(OBJ) $(PRG)

?

########################################### #Makefile for simple programs ########################################### #INC 是你項目包含的目錄 INC= #LIB是你需要鏈接的庫 LIB= -lpthread #CC是一個變量名 可以隨便起,這里代表你的編譯器 CC=g++ #LINK是鏈接的程序 LINK=g++ #LDFLAGS是鏈接的選項 LDFLAGS= #CC_FLAG 是編譯選項 CC_FLAG=-Wall -m64PRG=threadpooltest OBJ=CThreadManage.o CThreadPool.o CThread.o CWorkerThread.o threadpooltest.o#當你make 后 編譯器會去找 $(XXXX):$(xxxx) 的那一行 #你會發現它下面是一個 table縮進, table縮進 表示要執行那個命令 #然后編譯器會查看 "-o $@" 后面的目標有沒有生成或者更新,沒有就重新編譯那個目標文件 #比如這里$(OBJ)是各種.o文件, 那么就會先編譯這些.o文件 會去執行.cpp.o:下面的縮進命令$(PRG):$(OBJ)$(CC) $(INC) $(LIB) -o $@ $(OBJ)#.SUFFIXES表示后綴名 #這里表示要把INC下面的所有后綴是cpp或者c的編譯成.o文件 .SUFFIXES: .c .o .cpp .cpp.o:$(CC) $(CC_FLAG) $(INC) -c $*.cpp -o $*.o.PRONY:clean clean:@echo "Removing linked and compiled files......"rm -f $(OBJ) $(PRG)########################################### #這里舉個復雜的例子 ############################################1 先找到$(XXXX):$(xxxx) #2 去找"-o $@" 后面的目標有沒有生成或者更新,有就重新編譯那個目標 #3 "-o $@" 后面所有的目標都好了就開始鏈接主程序了 # 編譯和鏈接都需要一些選項 #4 >> output表示輸出重定向到文件,這樣出錯了比較好查找 all_objs= xxx1.o ../xxx2.o ../../xxx3.o #all_libs是鏈接的庫, -L指定庫的目錄, -l指定庫的名字 all_libs=-L../../sourceapp/qmarket/xykjclient/ -lMarketApi -lACE #$(target): $(all_objs) # $(LINK) $(LDFLAGS) -o $@ $(all_objs) $(all_libs) $(LIB) >> output#你可以自己加一些選項 比如下面的test 你在命令行 執行 make test,他就會執行那個縮進的命令 test:@echo "this is test" View Code

?

轉載于:https://www.cnblogs.com/renfanzi/p/9213421.html

總結

以上是生活随笔為你收集整理的c++ 的makefile文件实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。