Ошибка компилятора при включении boost / asio.hpp в C Builder 2010

#c #boost #boost-asio #c builder

#c #boost #boost-asio #c builder

Вопрос:

РЕДАКТИРОВАТЬ: РЕШЕНО!

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


Недавно я настроил C Builder и поиграл с ним, чтобы разобраться в C .

Мне нужно использовать boost-asio для проекта, над которым я буду работать, но я столкнулся с небольшой проблемой, когда просто пытался включить и скомпилировать его. Я настроил путь включения проекта и все, как должно быть (я могу проверить, удалив его, и компилятор жалуется, что не может найти asio.hpp, проблема не в этом).

Я пробовал использовать 2 версии Boost, 1_39 и 1_46, и я получаю разные ошибки в зависимости от используемой версии.

Я думаю, для начала проигнорируйте предупреждения. Кроме того, если вам нужен полный контекст синтаксического анализатора из ошибок, пожалуйста, дайте мне знать, и я смогу опубликовать их.

1_39:

[Предупреждение BCC32] error_code.hpp(486): локальная статика W8104 с конструктором опасна для многопоточных приложений

[Предупреждение BCC32] ошибка.hpp(349): локальная статика W8104 с конструктором опасна для многопоточных приложений

[Ошибка BCC32] auto_link.hpp(262): E2075 Неверный параметр директивы pragma: -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): внутренняя ошибка компилятора F1004 при 0x55a4e8d с базовым значением 0x5500000

1_46:

[Предупреждение BCC32] xutility (1808): переопределение ‘NOMINMAX’ в W8017 не идентично

[Предупреждение 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 *, 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 в свои условные определения и добавил errorcode.cpp из папки / libs/ system /src / в мой проект.

Ответ №1:

Устранено в соответствии с редактированием:

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