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

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++認不出"-)",不加也可以連結成功。
<a></a>