Ошибка компилятора при включении boost / asio.hpp в C ++ Builder 2010 - PullRequest
2 голосов
/ 29 апреля 2011

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

Я добавил 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 Warning] error.hpp (349): W8104 Локальная статика с конструктором, опасным для многопоточных приложений

[BCC32 Ошибка]auto_link.hpp (262): E2075 Неверная опция директивы прагмы: -v

[ошибка BCC32] static_log2.hpp (51): E2451 неопределенный символ 'n'

[ошибка BCC32] static_log2.hpp (55): E2451 Неопределенный символ 'value'

[Ошибка BCC32] static_log2.hpp (55): E2230 Для встроенной инициализации элемента данных требуется целочисленное константное выражение

[Фатальная ошибка BCC32] static_log2.hpp (49): F1004 Внутренняя ошибка компилятора в 0x55a4e8d с базой 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 *, system :: error_code, unsigned int)'недоступен

[BCC32 Warning] 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 Ответ

2 голосов
/ 29 апреля 2011

Решено в соответствии с правкой:

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

...