Как использовать Boost.Asio в Visual Studio 2005 - Windows Xp?

Мне нужно использовать библиотеку Boost.asio в C ++ Visual Studio 2005 (Windows XP).

Я выполнил следующие шаги: - Я скачал исполняемый файл. exe, чтобы установить библиотеки Boost в Windows XP в путь к моему файлу.

  • Я устанавливаю переменную среды INCLUDE: W: \ boost

    #using namespace boost;
    
    46_1 (мой файл пути, где есть библиотеки)

  • в Visual Studio 2005 в свойствах моего проекта (VS-> tools-> Options project & solutions-> vcc ++ каталогов) я добавил $ (INCLUDE)

  • в свойствах моего проекта в Visual Studio я добавил путь к моим библиотекам в компоновщик, чтобы скомпилировать мой пример.

  • Я попытался скомпилировать образцы файлов: http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/multicast/sender.cpp

  • У меня есть несколько ошибок во время компиляции:

Ошибка 3 ошибка C2653: 'asio': не имя класса или пространства имен c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 2

Ошибка 4 ошибка C2653: 'asio': не имя класса или пространства имен c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 24

Ошибка 5, ошибка C2143: синтаксическая ошибка: отсутствует ')' перед '&' c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 24

Ошибка 6, ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '&' c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 24

Ошибка 7, ошибка C2460: «sender :: io_service»: используется «отправитель», который определяется c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 24

Ошибка 8 ошибка C4430: отсутствует спецификатор типа - предполагается int. Примечание: C ++ не поддерживает default-int c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 24

Ошибка 9, ошибка C2653: 'asio': не является именем класса или пространства имен c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 24

Ошибка 10, ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '&' c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 24

Ошибка 11 ошибка C4430: отсутствует спецификатор типа - предполагается int. Примечание: C ++ не поддерживает default-int c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 24

Ошибка 13 ошибка C2059: синтаксическая ошибка: ')' c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 24

Ошибка 14, ошибка C2065: 'multicast_address': необъявленный идентификатор c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 26

Ошибка 15, ошибка C3861: 'endpoint_': идентификатор не найден c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 26

Ошибка 16, ошибка C2531: 'sender :: multicast_address': ссылка на битовое поле недопустима c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 26

Ошибка 17 ошибка C4430: отсутствует спецификатор типа - предполагается int. Примечание: C ++ не поддерживает default-int c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 26

Ошибка 18, ошибка C2327: 'sender :: io_service': не является именем типа, статическим или перечислителем c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 27

Ошибка 19, ошибка C2061: синтаксическая ошибка: идентификатор 'io_service' c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 27

Ошибка 20, ошибка C2059: синтаксическая ошибка: ')' c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 27

Ошибка 21 ошибка C2061: синтаксическая ошибка: идентификатор 'timer_' c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 28

Ошибка 22, ошибка C2143: синтаксическая ошибка: отсутствует ')' перед '{' c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 30

Ошибка 23 ошибка C4430: отсутствует спецификатор типа - предполагается int. Примечание: C ++ не поддерживает default-int c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 30

Ошибка 24, ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '{' c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 39

Ошибка 25, ошибка C2334: неожиданные токены, предшествующие '{'; пропуск видимого тела функции c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 39

Ошибка 26 фатальная ошибка C1004: обнаружен неожиданный конец файла c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 100

Я пропускаю какой-то шаг? Спасибо


Теперь я добавил в образец файла sender.cpp следующее:

#using namespace boost;

теперь ошибки уменьшены следующим образом:

Ошибка 3, ошибка C2039: 'error_code': не является членом 'boost :: asio' c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 42

Ошибка 4 ошибка C4430: отсутствует спецификатор типа - предполагается int. Примечание: C ++ не поддерживает default-int c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 42

Ошибка 5, ошибка C2143: синтаксическая ошибка: отсутствует ',' перед 'и' c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 42

Ошибка 6, ошибка C2039: 'error_code': не является членом 'boost :: asio' c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 53

Ошибка 7 ошибка C4430: отсутствует спецификатор типа - предполагается int. Примечание: C ++ не поддерживает default-int c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 53

Ошибка 8, ошибка C2143: синтаксическая ошибка: отсутствует ',' перед 'и' c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 53

Ошибка 9 ошибка C2065: 'ошибка': необъявленный идентификатор c: \ Documents and Settings \ GG \ Desktop \ sender.cpp 44


person Safari    schedule 20.04.2011    source источник


Ответы (1)


Похоже, вы выполнили все шаги.

Если вы щелкните правой кнопкой мыши #include в VS и откроете включение, найдет ли и откроет ли он заголовочный файл asio? Это будет первым признаком того, правильно ли настроена ваша среда VS.

Я также хотел бы проверить, правильно ли установлен boost: если вы выбрали W: \ boost_1_46_1 в качестве каталога установки (обычно по умолчанию это что-то вроде C: \ Program Files \ boost), проверьте, что

  • каталог содержит папку boost, которая содержит файлы заголовков, а также папки, относящиеся к конкретной библиотеке.
  • каталог lib содержит все встроенные двоичные файлы для вашей версии VS (например, vc8)
person Ralf    schedule 20.04.2011
comment
Я выполнил предложенные вами проверки: если я щелкну правой кнопкой мыши на #include, я увижу файл заголовка. Я допустил ошибку в своем вопросе: мой путь - это файлы библиотеки boost: C: \ Program Files \ boost \ boost_1_46_1 В boost_1_46_1 у меня есть: - увеличение каталога со всеми файлами заголовков; - каталог lib со всеми скомпилированными библиотеками (.dll и. lib), моя переменная среды и компоновщик в моем проекте свойств правильно установлены в этом пути к файлу .. как я могу исправить свою проблему ?? :( - person Safari; 21.04.2011
comment
Похоже, все настроено правильно. Единственное, что я могу придумать, это следующее (хотя я не уверен, будет ли это полезно): добавьте / showIncludes в параметры компилятора проекта, чтобы увидеть, как включаются файлы заголовков. Возможно, там есть что-то забавное. Если я не упускаю что-то очевидное ... - person Ralf; 21.04.2011