2016-04-09 6 views
1

私はMinGWとCmakeを使用するClionを使用しています。私は、スタンドアロンのasioライブラリを使用しようとすると私は私がC:/Windows/System32/ws2_32.dllライブラリをリンクする必要があると考えていClonでws2_32をリンクする方法

undefined reference to `[email protected]' 
undefined reference to `[email protected]' 
undefined reference to `[email protected]' 
... 

を取得しています。 -L C:/Windows/System32 -lws2_32のようなものを追加しようとしました:

set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS} -static -lws2_32") 

しかし、それは助けになりませんでした。これらのエラーを修正するにはどうすればよいですか?

+0

あなたは、 '-L Cを必要としません。とにかく、mingwは '.dll's、' .a's(そしておそらく '.lib's)のみとリンクすることはできません。 – HolyBlackCat

+0

問題は '-lws2_32'を間違った変数に入れてしまうことです。' CMAKE_EXE_LINKER_FLAGS'にある必要があります。 – HolyBlackCat

+0

@HolyBlackCat '.lib'または' .a'ファイルはどこにありますか? – dimitris93

答えて

2

次のCMakeLists.txtはエラーレスをコンパイルしました。唯一の1ラインが本当に必要とされる:mingwのは、すでにそれはディストリビューションの中で、このライブラリを持っているので、/ Windowsの/ System32`:link_libraries(ws2_32 wsock32)

cmake_minimum_required(VERSION 3.3) 
project(server_client) 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -s -O3 -I C:/Users/Shiro/Desktop/asio-1.10.6/include") 
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS} -static") 
link_libraries(ws2_32 wsock32) 


set(SOURCE_FILES chat_server.cpp) 
add_executable(server_client ${SOURCE_FILES}) 
関連する問題