Как исправить неопределенную ссылку на `__imp_WSACleanup' (Boost.Asio) в CLion

Мой проект C++ включает Boost и WebSocket++ библиотеки. Я читал другие темы, мне нужно добавить -lws2_32 в команду gcc, но у меня CLion, и я не знаю, как это исправить.

Приставка:

CMakeFiles\WsServer.dir/objects.a(main.cpp.obj): In function `boost::asio::detail::winsock_init_base::startup(boost::asio::detail::winsock_init_base::data&, unsigned char, unsigned char)':
C:/MinGW/include/boost/asio/detail/impl/winsock_init.ipp:39: undefined reference to `__imp_WSAStartup'
CMakeFiles\WsServer.dir/objects.a(main.cpp.obj): In function `boost::asio::detail::winsock_init_base::cleanup(boost::asio::detail::winsock_init_base::data&)':
C:/MinGW/include/boost/asio/detail/impl/winsock_init.ipp:56: undefined reference to `__imp_WSACleanup'
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[3]: *** [CMakeFiles\WsServer.dir\build.make:99: WsServer.exe] Error 1
mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:67: CMakeFiles/WsServer.dir/all] Error 2
mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:79: CMakeFiles/WsServer.dir/rule] Error 2
mingw32-make.exe: *** [Makefile:117: WsServer] Error 2

Что я должен делать?


person Szymon Marczak    schedule 04.08.2016    source источник


Ответы (1)


Вы можете передать ws2_32 через target_link_libraries в файле CMakeLists.txt, например:

if(MINGW)
  target_link_libraries(YourTargetName ws2_32)
endif()
person goldwin-es    schedule 04.08.2016
comment
У меня другая похожая проблема. Если можете, посмотрите: stackoverflow.com/questions/38770895/ - person Szymon Marczak; 04.08.2016