Ошибка компилятора при включении boost / asio.hpp на C++ Builder 2010
ПРАВКА: РЕШЕНО!
Я добавил BOOST_ALL_NO_LIB в мои условные определения и добавил код ошибки.cpp из папки / libs / system / src / в мой проект.
Недавно я создал C++ Builder и играл с ним, чтобы разобраться в C++.
Мне нужно использовать boost-asio для проекта, над которым я буду работать, но я столкнулся с небольшой проблемой, когда просто пытался включить и скомпилировать его. Я настроил проект include path и все как положено (I можно проверить, удалив его, и компилятор жалуется, что не может найти asio.ГЭС, это не проблема).
Я пробовал с 2 версиями Boost, 1_39 и 1_46, и я получаю различные ошибки в зависимости от используемой версии.
Игнорируйте предупреждения для начала, я думаю. Кроме того, если вам нужен полный контекст парсера от ошибок, пожалуйста, дайте мне знать, и я могу опубликовать их.
1_39:
[BCC32 Warning] error_code.ГЭС(486): W8104 локальная статика с конструктором опасный для многопоточных приложений
[предупреждение BCC32] ошибка.ГЭС (349): W8104 Локальная статика с конструктором опасно для многопоточных приложений
[ошибка BCC32] auto_link.ГЭС (262): E2075 неправильная директива pragma вариант: - v
[ошибка BCC32] static_log2.ГЭС (51): E2451 неопределенный символ ' n '
[ошибка BCC32] static_log2.ГЭС (55): E2451 неопределенный символ 'value'
[ошибка BCC32] static_log2.ГЭС (55): Встроенный элемент данных E2230 инициализация требует комплексного постоянное выражение
[BCC32 фатальная ошибка] static_log2.ГЭС (49): F1004 внутренняя ошибка компилятора при 0x55a4e8d с базой 0x5500000
1_46:
[предупреждение BCC32] xutility (1808): W8017 Переопределение 'NOMINMAX' не является идентичные
[предупреждение BCC32] stdint.h (168): W8017 Переопределение 'WCHAR_MAX' не является идентичные
[предупреждение BCC32] win_tss_ptr.ИПП(41): W8012 сравнение знаковых и беззнаковых значения
[предупреждение BCC32] socket_select_interrupter.ИПП(138): W8012 сравнение знаковых и беззнаковых значения
[ошибка BCC32] strand_service.ГЭС (31): E2247 'strand_service:: do_complete (win_iocp_io_service *, win_iocp_operation *, system:: error_code, unsigned int) ' недоступен
[предупреждение BCC32] strand_service.ipp (95): W8058 не может создать предварительно скомпилированный заголовок: инициализированные данные в заголовке
Исходный код на самом деле не имеет значения, но независимо от этого (удаление asio include, у меня нет проблем, очевидно):
//---------------------------------------------------------------------------
#include <boost/asio.hpp>
#include <iostream>
//---------------------------------------------------------------------------
int main ()
{
std::cout << "Test";
std::cin.ignore();
return 0;
}
//---------------------------------------------------------------------------
ПРАВКА: РЕШЕНО!
Я добавил BOOST_ALL_NO_LIB в мои условные определения и добавил код ошибки.cpp из папки / libs / system / src / в мой проект.