无法在CMAKE 3.15.0中包含编译标志

时间:2019-06-18 17:29:56

标签: c++ boost makefile cmake

我能够通过Windows命令提示符成功编译并执行一个包含boost库的示例C ++程序。

我想使用make,因此我想在MinGW g ++中使用CMAKE(3.15)。

我在cmd提示符下使用了cmake-gui,CLION和cmake

很不幸,我无法找到CMakeLists.txt中包含的编译器标志“ -lws2_32”

我在StackOverflow上找到了不同的解决方案,但没有一个帮助我。

下面是CMakeLists.txt

    cmake_minimum_required (VERSION 3.14.0)
    project (BoostCMakeTutorial)
    set(GCC_BOOST_COMPILER_FLAG "-lws2_32")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_BOOST_COMPILER_FLAG}")
    add_executable(BoostCMakeTutorial boostTcpClient.cpp)

我确定CMAKE缺少“ -lws2_32”标志,因为当不包括在内时,我在cmd提示符下看到相同的错误

1 个答案:

答案 0 :(得分:0)

要在现代CMake中添加-lws2_32链接器标志,最好的方法是使用target_link_libraries。我在下面更新了您的示例:

cmake_minimum_required (VERSION 3.14.0)
project (BoostCMakeTutorial)
add_executable(BoostCMakeTutorial boostTcpClient.cpp)
target_link_libraries(BoostCMakeTutorial ws2_32)