編輯:已解決!在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添加到我的項目中。