Как использовать Boost.asio для многоадресного отправителя? - PullRequest
0 голосов
/ 14 апреля 2011

Я пытаюсь использовать boost.asio для реализации многоадресного отправителя.У меня есть реализация потока, и мне нужен мой boost.asio только для управления сокетом.

Я посмотрел пример на сайте boost, но не понял и не компилирую.Где я могу найти то, что мне нужно?

Ошибки компиляции: (Я пробовал этот пример: 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»: использует «sender», который определяется c: \ Documentsи Настройки \ 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и Настройки \ 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 \Рабочий стол \ sender.cpp 24

Ошибка 14, ошибка C2065: 'многоадресный_адрес': необъявленный идентификатор 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Настройки \ 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

1 Ответ

0 голосов
/ 20 апреля 2011

Пример , который вы выбрали для компиляции, должен собираться чисто, если вы правильно установили boost.Я не знаю, как настроена ваша среда разработки.В моей системе boost установлен в /opt/local, поэтому заголовки - в /opt/local/include, а библиотеки для ссылок - в /opt/local/lib.Моя строка компиляции и ссылки выглядит следующим образом:

stackoverflow samm$ g++ sender.cpp  -I /opt/local/include/ -L/opt/local/lib -lboost_system -Wl,-rpath,/opt/local/lib

Первая ошибка, которую вы видите

Ошибка 3: ошибка C2653: «asio»: это не имя класса или пространства имен c: \ Documentsи Настройки \ GG \ Desktop \ sender.cpp 2

выглядят так, как будто вы забыли #include <boost/asio.hpp> где-то.Но я далеко не специалист по разработке Windows, поэтому, возможно, кто-то более знающий ответит.

...