gcc參數位置 - Linux
By Hedy
at 2010-05-26T00:08
at 2010-05-26T00:08
Table of Contents
※ 引述《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。
--
: 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。
--
Tags:
Linux
All Comments
By Belly
at 2010-05-27T07:21
at 2010-05-27T07:21
Related Posts
Distribution Release: Fedora 13
By Jacob
at 2010-05-25T22:00
at 2010-05-25T22:00
懇請接手 Debian GNU/Linux Squeeze Release Notes 之翻譯工作
By Joe
at 2010-05-25T21:27
at 2010-05-25T21:27
vsftpd 中文檔案變亂碼(invalid encoding)
By Ursula
at 2010-05-25T20:41
at 2010-05-25T20:41
vsftpd 中文檔案變亂碼(invalid encoding)
By John
at 2010-05-25T20:33
at 2010-05-25T20:33
Linux上有哪些套件可讀取16進位檔案?
By James
at 2010-05-25T17:41
at 2010-05-25T17:41