Re: [問題] gcc參數位置
※ 引述《goo666 ()》之銘言:
: LDFLAGS += -L../../API-C/src/obj -lCApi
: 1. $(LDFLAGS)放這邊,link錯誤
: $(CC) $(CFLAGS) $(CFLAGS_EXTRA) $(LDFLAGS) $(INCLUDE) $(OPTIMIZE) $(OBJ) $(LIB) -o $(BIN)/$@
: ^^^^^^^^^^^^
: aging.c:(.text+0x98): undefined reference to `switch_get_age_enable_flag
: 2. $(LDFLAGS)放這裡,link ok
: $(CC) $(CFLAGS) $(CFLAGS_EXTRA) $(INCLUDE) $(OPTIMIZE) $(OBJ) $(LDFLAGS) $(LIB) -o $(BIN)/$@
: ^^^^^^^^^^^^
: 請問gcc參數放置規則是怎麼樣?
: 給compiler的參數放$(OBJ)前?給linker的參數放$(OBJ)後?
linker 會依照順序連結檔案,所以如果 foo.o 相依於 libCApi,
必須是 foo.o -lCApi 這樣的順序。若反著帶 -lCApi foo.o 的話,
在連結到 libCApi 的時候,linker 會認定沒有參考到其中任何 function
而沒有連結到 foo.o 需要的 function。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.105.28
推
05/30 08:55, , 1F
05/30 08:55, 1F
討論串 (同標題文章)
Linux 近期熱門文章
21
56
PTT數位生活區 即時熱門文章