亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: liu1061
打印 上一主題 下一主題

關(guān)于makefile中對頭文件依賴的問題? [復(fù)制鏈接]

論壇徽章:
0
11 [報告]
發(fā)表于 2011-03-31 08:44 |只看該作者
可以使用編譯器的-M選項(xiàng)生成頭文件依賴

論壇徽章:
0
12 [報告]
發(fā)表于 2011-04-01 00:04 |只看該作者
本帖最后由 liu1061 于 2011-04-01 00:06 編輯

為什么我加了-MM后,反到make的時候到有錯呢!
我測試用的makefile.
CC    := gcc
CFLAGS := -Wall -g
SOURCE := $(wildcard *.c)
OBJECTS : = $(SOURCE:%.c:%.o)

$(TARGET) : $(OBJECTS)
       $(CC) $(CFLAGS) -o $@ $^

%.o : %.c
      $(CC) $(CFLAGS) -o $@ -c -MM $<

.PHONY : clean test
clean :
      -rm $(OBJECTS) $(TARGET)
test :
      @echo $(SOURCE)
      @echo $(OBJECTS)

下面是測試結(jié)果圖!


不知道是不是我理解和做法問題希望朋友們指點(diǎn)一下!drangon & 皇家救星, 能給點(diǎn)意見嗎?用過drangon的方法也不能通過!也不知道為什么!

論壇徽章:
0
13 [報告]
發(fā)表于 2011-04-01 18:24 |只看該作者
了解的朋友給支持一下!謝謝哦!

論壇徽章:
0
14 [報告]
發(fā)表于 2011-04-01 19:29 |只看該作者

  1. # My simple makefile
  2. #

  3. CC = gcc

  4. BIN_PROGRAM = xxx

  5. SOURCE_DIR = $(shell pwd)
  6. INCLUDE_DIR = $(SOURCE_DIR)/include

  7. SOURCE_FILES = $(wildcard *.c)
  8. OBJ_FILES = $(patsubst %.c, %.o, $(SOURCE_FILES))
  9. DEPEND_FILES = $(patsubst %.c, %.d, $(SOURCE_FILES))

  10. CFLAGS = -Wall -I$(INCLUDE_DIR)

  11. all: $(BIN_PROGRAM)

  12. %.o:%.c
  13.     $(CC) $(CFLAGS) -c $< -o $@

  14. %.d:%.c
  15.     @set -e; rm -f $@; \
  16.     $(CC) $(CFLAGS) -MM  $< > $@.$$; \
  17.     sed 's,\($*\)\.o[:]*,\1.o $@: ,g' $@.$$ > $@; \
  18.     rm -f $@.$$

  19. sinclude $(DEPEND_FILES)

  20. $(BIN_PROGRAM): $(OBJ_FILES)
  21.     $(CC) $(CFLAGS) $^ -o $@

  22. clean:
  23.     rm -f $(BIN_PROGRAM) $(OBJ_FILES) $(DEPEND_FILES) $(DEPEND_FILES).*
復(fù)制代碼
試一試我的

論壇徽章:
0
15 [報告]
發(fā)表于 2011-04-01 20:40 |只看該作者
回復(fù) 14# whaaat


    %.d:%.c

    @set -e; rm -f $@; \

    $(CC) $(CFLAGS) -MM  $< > $@.$$; \

    sed 's,\($*\)\.o[:]*,\1.o $@: ,g' $@.$$ > $@; \

    rm -f $@.$$

這段有什么作用嗎,看起來有點(diǎn)麻煩哦,還用到了sed! 呵呵,我試試!

論壇徽章:
0
16 [報告]
發(fā)表于 2011-04-01 20:42 |只看該作者
回復(fù) 15# liu1061
改變—MM結(jié)果,增加.d文件的依賴

論壇徽章:
0
17 [報告]
發(fā)表于 2011-04-01 20:54 |只看該作者
回復(fù) 16# whaaat


    我剛才試了,可以通過,運(yùn)行結(jié)果也是OK的!但是我改動其include的頭文件后,在次make時,總是提示:
Nothing to be done for `all'!

不知道為什么,明明頭文件有改動,但是make的時候動卻不能反應(yīng)出來!

論壇徽章:
0
18 [報告]
發(fā)表于 2011-04-01 21:18 |只看該作者
回復(fù) 17# liu1061
應(yīng)該會重新編譯啊,你再檢查檢查

論壇徽章:
0
19 [報告]
發(fā)表于 2011-04-01 21:51 |只看該作者
還是不行! 試過N多次了!

論壇徽章:
0
20 [報告]
發(fā)表于 2011-04-04 16:06 |只看該作者
不推薦使用gcc -M, 會弄出一大堆文件.
簡單的用Makefile寫, 甚至還可以在makefile里寫shell.
麻煩的用CMake, scons, bjam等更好的工具吧.
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP