天天看點

GCC依賴庫順序問題

今天在把linux下做的ipmsg移植到windows過程中,因為包含了一個開源庫SimpleSocket,而這個庫又引用了winsock2,沒太注意就寫下了下面的makefile:

GCC依賴庫順序問題

g++ -o tt tt.o -lws2_32 -lclsocketd

結果報出了N多醜陋的undefined reference..之後嘗試将-lws2_32和-lclsocketd交換位置後,編譯通過。

1、-la -lb -la,醜陋,但是有效。

2、gcc有這樣的選項,-Xlinker,寫成如下格式可以強制gcc重複查找依賴庫:

g++ -o tt tt.o -Xlinker "-(" -lws2_32 -lclsocketd -Xlinker "-)" 

這樣在括号中的庫的依賴關系就不需要你操心啦,雖然會延長連結時間。不過本人在實際使用過程中,g++認不出"-)",不加也可以連結成功。

GCC依賴庫順序問題

<a></a>

繼續閱讀