線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1303
推到 Plurk!
推到 Facebook!

怎麼產生一個makefile檔

尚未結案
burnspawn
一般會員


發表:1
回覆:0
積分:0
註冊:2003-04-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-18 18:25:59 IP:140.135.xxx.xxx 未訂閱
我現在手邊已經有一個makefile的code了 我要怎麼作才能將這個檔連結到其他已經寫好的程式中??? makefile的程式是這樣子的... # # Makefile # GLUTHOME = /home/michael/glut GLUTL = $(GLUTHOME)/lib/glut.n32/libglut.a LIBS = $(GLUTL) -lGLU -lGL -lXmu -lXi -lXext -lX11 -limage -lm CC = CC C = cc CFLAGS = -I./ -I$(GLUTHOME)/include -n32 -Ofast LFLAGS = -n32 -Ofast OBJ_DIR = ./ EXEC = ./texture OBJS=$(OBJ_DIR)texture.o $(OBJ_DIR)rgb.o $(OBJ_DIR)common.o $(OBJ_DIR)main.o $(OBJ_DIR)ui.o all: $(EXEC) $(EXEC): $(OBJS) $(CC) $(LFLAGS) -o $(EXEC) $(OBJS) $(LIBS) $(OBJ_DIR)texture.o: texture.cc $(CC) $(CFLAGS) -o $(OBJ_DIR)texture.o -c texture.cc $(OBJ_DIR)texture2.o: texture2.cc $(CC) $(CFLAGS) -o $(OBJ_DIR)texture2.o -c texture2.cc $(OBJ_DIR)texturet.o: texturet.cc $(CC) $(CFLAGS) -o $(OBJ_DIR)texturet.o -c texturet.cc $(OBJ_DIR)common.o: common.cc $(CC) $(CFLAGS) -o $(OBJ_DIR)common.o -c common.cc $(OBJ_DIR)rgb.o: rgb.c $(C) $(CFLAGS) -o $(OBJ_DIR)rgb.o -c rgb.c $(OBJ_DIR)main.o: main.cc $(CC) $(CFLAGS) -o $(OBJ_DIR)main.o -c main.cc $(OBJ_DIR)maint.o: maint.cc $(CC) $(CFLAGS) -o $(OBJ_DIR)maint.o -c maint.cc $(OBJ_DIR)ui.o: ui.cc $(CC) $(CFLAGS) -o $(OBJ_DIR)ui.o -c ui.cc clean: rm -f $(EXEC) rm -f *.o 謝謝了... 發表人 - burnspawn 於 2003/04/18 23:13:58
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-26 23:24:13 IP:61.224.xxx.xxx 未訂閱
引言: 我現在手邊已經有一個makefile的code了 我要怎麼作才能將這個檔連結到其他已經寫好的程式中??? makefile的程式是這樣子的...
Makefile 的功用,主要是省去你在 command line 模式下的一行一行輸入指令,make 的程式也可以去 check makefile 中檔案的相依性,以決定是否作動作,該動作可以是 compile/link 或是與組譯無關的動作也行。 看您的 makefile ,應該不是用在 Windows 系統的吧... 好像是 OpenGL Utility Toolkit (GLUT) 的 example 還是 source, 如果您是 Windowx 的系統,可以參考以下的網址: http://www.xmission.com/~nate/glut.html 有 VC 的 source 含 project 檔 可以下載
引言: # # Makefile # GLUTHOME = /home/michael/glut GLUTL = $(GLUTHOME)/lib/glut.n32/libglut.a LIBS = $(GLUTL) -lGLU -lGL -lXmu -lXi -lXext -lX11 -limage -lm CC = CC C = cc CFLAGS = -I./ -I$(GLUTHOME)/include -n32 -Ofast LFLAGS = -n32 -Ofast OBJ_DIR = ./ EXEC = ./texture OBJS=$(OBJ_DIR)texture.o $(OBJ_DIR)rgb.o $(OBJ_DIR)common.o $(OBJ_DIR)main.o $(OBJ_DIR)ui.o
以上這些是變數定義
引言: all: $(EXEC)
這是指定最主要的產出是 $(EXEC) 也就是 ./texture 這個檔案。
引言: $(EXEC): $(OBJS) $(CC) $(LFLAGS) -o $(EXEC) $(OBJS) $(LIBS)
這是定義 ./texture 這個檔案是由 $(OBJS) 所指定的檔案而來,當 $(OBJS) 內任一個檔比 ./texture 這個檔日期還要新時, $(CC) $(LFLAGS) -o $(EXEC) $(OBJS) $(LIBS) 這一行指定就會執行,而此行基本就是產生新的 ./texture 。 以下則是每個 OBJ 檔,動作原理同前述。
引言: $(OBJ_DIR)texture.o: texture.cc $(CC) $(CFLAGS) -o $(OBJ_DIR)texture.o -c texture.cc $(OBJ_DIR)texture2.o: texture2.cc $(CC) $(CFLAGS) -o $(OBJ_DIR)texture2.o -c texture2.cc $(OBJ_DIR)texturet.o: texturet.cc $(CC) $(CFLAGS) -o $(OBJ_DIR)texturet.o -c texturet.cc $(OBJ_DIR)common.o: common.cc $(CC) $(CFLAGS) -o $(OBJ_DIR)common.o -c common.cc $(OBJ_DIR)rgb.o: rgb.c $(C) $(CFLAGS) -o $(OBJ_DIR)rgb.o -c rgb.c $(OBJ_DIR)main.o: main.cc $(CC) $(CFLAGS) -o $(OBJ_DIR)main.o -c main.cc $(OBJ_DIR)maint.o: maint.cc $(CC) $(CFLAGS) -o $(OBJ_DIR)maint.o -c maint.cc $(OBJ_DIR)ui.o: ui.cc $(CC) $(CFLAGS) -o $(OBJ_DIR)ui.o -c ui.cc clean: rm -f $(EXEC) rm -f *.o 謝謝了... 發表人 - burnspawn 於 2003/04/18 23:13:58
基本上,如果您已有所有的原始碼,在此 makefile 所在的路徑下直接執行 make 或 nmake (看你的系統的 make.exe 叫什麼) 加上 -f 的參數,並指定 makefile 即可,如: make -f mymake.mak 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://big5.to/吃軟也吃硬 http://coolsite.to/ushells 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
系統時間:2024-05-05 19:14:03
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!