makefile生成執行文件、靜態庫、動態庫模板

      網友投稿 1336 2022-05-29

      1、生成可執行文件的Makefile

      復制代碼

      ######################################

      #

      ######################################

      #source file

      #源文件,自動找所有.c和.cpp文件,并將目標定義為同名.o文件

      SOURCE ?:= $(wildcard *.c) $(wildcard *.cpp)

      OBJS ? ?:= $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE)))

      #target you can change test to what you want

      #目標文件名,輸入任意你想要的執行文件名

      TARGET ?:= test

      #compile and lib parameter

      #編譯參數

      CC ? ? ?:= gcc ? ? ?#編譯器

      LIBS ? ?:= ? ? ? ? ?#鏈接哪些庫

      LDFLAGS := ? ? ? ? ?#lib庫路徑

      DEFINES :=

      INCLUDE := -I.

      CFLAGS ?:= -g -Wall -O3 $(DEFINES) $(INCLUDE) ?#-g -Wall -O3 -Iinclude

      CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H ? ? ? ? #CFLAGS 表示用于 C 編譯器的選項,CXXFLAGS 表示用于 C++ 編譯器的選項

      #i think you should do anything here

      #下面的基本上不需要做任何改動了

      .PHONY : everything objs clean veryclean rebuild

      everything : $(TARGET)

      all : $(TARGET)

      objs : $(OBJS)

      rebuild: veryclean everything

      clean :

      rm -fr *.so

      rm -fr *.o

      veryclean : clean

      rm -fr $(TARGET)

      $(TARGET) : $(OBJS)

      $(CC) $(CXXFLAGS) -o $@ $(OBJS) $(LDFLAGS) $(LIBS)

      復制代碼

      2、生成靜態鏈接庫的makefile

      復制代碼

      ######################################

      #

      #

      ######################################

      #target you can change test to what you want

      #共享庫文件名,lib*.a

      TARGET ?:= libtest.a

      #compile and lib parameter

      #編譯參數

      CC ? ? ?:= gcc

      AR ? ? ?= ar

      RANLIB ?= ranlib

      LIBS ? ?:=

      LDFLAGS :=

      DEFINES :=

      INCLUDE := -I.

      CFLAGS ?:= -g -Wall -O3 $(DEFINES) $(INCLUDE)

      CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H

      #i think you should do anything here

      #下面的基本上不需要做任何改動了

      makefile生成可執行文件、靜態庫、動態庫模板

      #source file

      #源文件,自動找所有.c和.cpp文件,并將目標定義為同名.o文件

      SOURCE ?:= $(wildcard *.c) $(wildcard *.cpp)

      OBJS ? ?:= $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE)))

      .PHONY : everything objs clean veryclean rebuild

      everything : $(TARGET)

      all : $(TARGET)

      objs : $(OBJS)

      rebuild: veryclean everything

      clean :

      rm -fr *.o

      veryclean : clean

      rm -fr $(TARGET)

      $(TARGET) : $(OBJS)

      $(AR) cru $(TARGET) $(OBJS)

      $(RANLIB) $(TARGET)

      復制代碼

      3、生成動態鏈接庫的makefile

      復制代碼

      ######################################

      #

      #

      ######################################

      #target you can change test to what you want

      #共享庫文件名,lib*.so

      TARGET ?:= libtest.so

      #compile and lib parameter

      #編譯參數

      CC ? ? ?:= gcc

      LIBS ? ?:=

      LDFLAGS :=

      DEFINES :=

      INCLUDE := -I.

      CFLAGS ?:= -g -Wall -O3 $(DEFINES) $(INCLUDE)

      CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H

      SHARE ? := -fPIC -shared -o

      #i think you should do anything here

      #下面的基本上不需要做任何改動了

      #source file

      #源文件,自動找所有.c和.cpp文件,并將目標定義為同名.o文件

      SOURCE ?:= $(wildcard *.c) $(wildcard *.cpp)

      OBJS ? ?:= $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE)))

      .PHONY : everything objs clean veryclean rebuild

      everything : $(TARGET)

      all : $(TARGET)

      objs : $(OBJS)

      rebuild: veryclean everything

      clean :

      rm -fr *.o

      veryclean : clean

      rm -fr $(TARGET)

      $(TARGET) : $(OBJS)

      $(CC) $(CXXFLAGS) $(SHARE) $@ $(OBJS) $(LDFLAGS) $(LIBS)

      Makefile

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:把設備分享給每個Docker Container
      下一篇:計算機操作系統學習筆記 | 進程
      相關文章
      亚洲av无码久久忘忧草| 亚洲一卡2卡三卡4卡有限公司| 亚洲国产成人高清在线观看 | 亚洲精品天堂成人片AV在线播放| 亚洲国产成人久久三区| 精品亚洲aⅴ在线观看| 亚洲国产精久久久久久久| 久久国产精品亚洲综合| 亚洲av无码一区二区乱子伦as| 亚洲国产精品乱码一区二区| 久久精品亚洲中文字幕无码网站| 亚洲国产第一站精品蜜芽| 亚洲AV日韩AV天堂一区二区三区| 久久青青草原亚洲AV无码麻豆| 久久亚洲精品国产精品黑人| 亚洲AV乱码一区二区三区林ゆな| 久久亚洲精精品中文字幕| 亚洲视频免费在线看| 亚洲人成片在线观看| 亚洲综合av一区二区三区| 亚洲精品中文字幕无码A片老| 国产精品亚洲一区二区在线观看| 国产成人亚洲午夜电影| 亚洲综合精品网站| 亚洲啪啪综合AV一区| 亚洲AV日韩AV永久无码绿巨人| 久久亚洲日韩精品一区二区三区| 久久综合亚洲色HEZYO社区| 精品亚洲成A人无码成A在线观看| 亚洲人成网站在线观看播放动漫 | 91午夜精品亚洲一区二区三区| 亚洲伊人久久大香线蕉结合| 亚洲日本VA中文字幕久久道具| 亚洲国产精品无码第一区二区三区 | 国产精品亚洲专区在线观看| 亚洲 欧洲 视频 伦小说| 亚洲精品9999久久久久无码| 亚洲精品成人区在线观看| 亚洲夜夜欢A∨一区二区三区| 久久久亚洲精品国产| 亚洲免费福利视频|