2013-10-14 52 views
1

我正在使用MinGW,Eclipse和Boost進行某些TCP/IP編程。通常我使用Visual Studio,但對於此項目,我使用Eclipse和MinGW。我運行了頭測試程序,運行良好。使用MinGW,Eclipse和Boost無法編譯(1.50.0)

當我想構建一個包含asio的項目時,我收到參考錯誤。

在Eclipse中MinGW的設置下,我已經包含了庫,並在C++下添加了包含搜索路徑。這些庫是靜態構建的。

我已經在網上閱讀,我還需要包括編譯器標誌-lws2_32。我在Eclipse的MinGW設置下完成了這個工作。

我包括asio方式如下:

undefined reference to `[email protected]' 

誰能幫我解決這個問題:

#include <boost/regex.hpp> 
#include <boost/asio.hpp> 

,我得到的是下面的錯誤?

祝好!

回答

2

libws2_32.a顯然沒有正確鏈接。我懷疑添加聯動開關(如-l)雜項是這樣做的錯誤方法。從我記得的路徑和符號節有選項卡,您可以簡單地添加ws2_32(沒有任何標誌),並讓Eclipse使用適當的開關調用GCC。

+0

怎麼樣?你有沒有設法建造它? –

+0

謝謝,我認爲你的建議提高了它!現在只需要從boost中添加系統庫,因爲存在以下錯誤:boost :: system :: system_category()。我會這樣做,現在讓你發佈。再次感謝! – Roy08

+1

剛剛添加了系統,ecexption和信號庫。並沒有錯誤。我仍然有一些警告(牆上掛着),這與我認爲的winsock有關。 #warning假設_WIN32_WINNT = 0x0501(即Windows XP目標),#warning例如,將-D_WIN32_WINNT = 0x0501添加到編譯器命令行#warning請適當地定義_WIN32_WINNT或_WIN32_WINDOWS。如何解決此問題? – Roy08