Ошибка компилятора при включении 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 / в мой проект.

1 2

1 ответ:

Решается в соответствии с редакцией:

Я добавил BOOST_ALL_NO_LIB в мои условные определения и добавил код ошибки.cpp из папки / libs / system / src / в мой проект.