2011-04-29 163 views
2

編輯:已解決!在C++ Builder 2010中包含boost/asio.hpp時出現編譯錯誤

我將BOOST_ALL_NO_LIB添加到我的條件定義中,並將/codes/system/src/文件夾中的errorcode.cpp添加到我的項目中。


我最近設置了C++ Builder,並且一直在使用它來解決C++的問題。

我需要使用boost-asio來處理一個我將要處理的項目,但是當試圖包含並編譯它時遇到了一些問題。我已經建立了項目包含路徑和所有它應該是的(我可以通過刪除它進行測試,編譯器抱怨它找不到asio.hpp,這不是問題)。

我嘗試過Boost,1_39和1_46的兩個版本,根據使用的版本,我得到了不同的錯誤。

忽略首發者的警告,我想。另外,如果你想從錯誤中獲得完整的解析器上下文,請讓我知道,我可以發佈它們。

1_39:

[BCC32警告] error_code.hpp(486): W8104局部靜態與構造 危險的多線程應用程序

[BCC32警告] error.hpp(349) :W8104 局部靜態與構造 危險的多線程應用程序

[BCC32錯誤] auto_link.hpp(262): E2075不正確的編譯指令 選項:-v

[BCC32錯誤] static_log2.hpp(51): E2451未定義的符號 'N'

[BCC32錯誤] static_log2.hpp(55): E2451未定義符號 '值'

[BCC32錯誤] static_log2.hpp(55): E2230在線數據成員 初始化需要一個積分 常量表達式

[BCC32致命錯誤] static_log2.hpp(49):F100在0x55a4e8d 4內部 編譯器錯誤用鹼 0x5500000

1_46:

[BCC32警告] xutility(1808):W8017 的 'NOMINMAX' 重新定義是不 相同

[ BCC32警告] stdint.h(168):W8017 'WCHAR_MAX'的重新定義不是 相同

[BCC32警告] win_tss_ptr。IPP(41): W8012比較符號和無符號的值

[BCC32警告] socket_select_interrupter.ipp(138): W8012比較符號和無符號的值

[BCC32錯誤] strand_service.hpp(31 ): E2247 'strand_service :: do_complete(win_iocp_io_service *,win_iocp_operation *,系統:: ERROR_CODE,無符號整型)' 不可訪問

[BCC32警告] strand_service。 IPP(95):W8058不能 創建預編譯的頭:在頭 初始化數據

的源代碼其實並不重要,但無論(去除ASIO包括,我沒有問題,很明顯):

//--------------------------------------------------------------------------- 
#include <boost/asio.hpp> 
#include <iostream> 
//--------------------------------------------------------------------------- 

int main() 
{ 
    std::cout << "Test"; 
    std::cin.ignore(); 
    return 0; 
} 
//--------------------------------------------------------------------------- 

編輯:已解決!

我將BOOST_ALL_NO_LIB添加到我的條件定義中,並將/codes/system/src/文件夾中的errorcode.cpp添加到我的項目中。

回答

2

解決按編輯:

我加BOOST_ALL_NO_LIB我的條件定義和/庫/系統/ src目錄/文件夾到我的項目加入errorcode.cpp。