看板 Linux 關於我們 聯絡資訊
※ 引述《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
goo666:謝謝 05/30 08:55