crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Boost Asio, collect2: ld returned 1 exit status
Гость_spumer_*
сообщение 25.3.2011, 16:53
Сообщение #1





Гости








    


Собственно не заводятся программы с использованием Asio. Пробовал ламбду и регекспы, все отлично компилится.
При попытке скомпилить это:
#include <boost/asio.hpp>
int main()
{
    using boost::asio::ip::udp;


  return 0;
}


Выдает вот это:
Compiling: D:\work\C\l4d2-request\main.cc
Linking console executable: D:\work\C\l4d2-request\main.exe
D:\work\C\l4d2-request\main.o:main.cc:(.text$_ZN5boost4asio6detail17winsock_init_base7startupERNS2_4dataEhh[boost::asio::detail::winsock_init_base::startup(boost::asio::detail::winsock_init_base::data&, unsigned char, unsigned char)]+0x57): undefined reference to `WSAStartup@8'
D:\work\C\l4d2-request\main.o:main.cc:(.text$_ZN5boost4asio6detail17winsock_init_base7cleanupERNS2_4dataE[boost::asio::detail::winsock_init_base::cleanup(boost::asio::detail::winsock_init_base::data&)]+0x1e): undefined reference to `WSACleanup@0'
collect2: ld returned 1 exit status

VC++ 2010 спокойно все собирает. Может я что-то недопрописал? Компилю в Code::Blocks 10.05
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 26.3.2011, 0:13
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


скорее всего, не указал библиотеки для линковщика.

посмотри тут:
http://www.cplusplus.com/forum/beginner/14181/
эти входы - это вендозная библиотека сокетов. я не в курсе, как boost::asio использует ресурсы, но скорее всего нужно дополнительно подключить родные системные библиотеки. ну а дальше настройки будут зависеть от того, какой компилятор ты используешь.

Сообщение отредактировал Iron Bug - 26.3.2011, 0:26
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_spumer_*
сообщение 26.3.2011, 11:38
Сообщение #3





Гости








    


Цитата(Iron Bug @ 26.3.2011, 0:13) *
скорее всего, не указал библиотеки для линковщика.

посмотри тут:
http://www.cplusplus.com/forum/beginner/14181/
эти входы - это вендозная библиотека сокетов. я не в курсе, как boost::asio использует ресурсы, но скорее всего нужно дополнительно подключить родные системные библиотеки. ну а дальше настройки будут зависеть от того, какой компилятор ты используешь.

Спасибо, помогло. Добавил "-lwsock32" и все скомпилилось как надо.

PS: В Code::Blocks добавлял в "Other linker options", которая находится на вкладке Linker options (Settings -> Compile and debugger settings);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 27.3.2011, 0:52
Сообщение #4


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


в Code::Blocks в свойствах проекта есть закладка для настроек линкера. и там слева список для библиотек: Link libraries. можно имена библиотек прямо туда писать. а справа писать только флаги для линкера.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
spumer
  опции профиля:
сообщение 30.3.2011, 13:23
Сообщение #5


Студент
*

Группа: Новичок
Сообщений: 18
Регистрация: 28.3.2011
Пользователь №: 2546

Спасибо сказали: 0 раз(а)




Репутация:   0  


Чтобы прикрутить asio к QT, указываются ключики так:
LIBS += PATH_TO/boost/stage/lib/libboost_system-mgw45-1_46.a
win32:LIBS += -lsetupapi
win32:LIBS += -lwsock32
win32:LIBS += -lws2_32
win32:DEFINES += _WIN32_WINNT=0x0501
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.12.2024, 14:30