无法在CMAKE 3.15.0中包含编译标志 我能够成功编译并执行一个C++程序,其中包含了通过Windows命令提示符的Boost库。
我想使用make,因此我想在mingwg++中使用CMAKE(3.15) 我在cmd提示符上使用了cmakegui、CLION和无法在CMAKE 3.15.0中包含编译标志 我能够成功编译并执行一个C++程序,其中包含了通过Windows命令提示符的Boost库。,c++,boost,makefile,cmake,C++,Boost,Makefile,Cmake,我想使用make,因此我想在mingwg++中使用CMAKE(3.15) 我在cmd提示符上使用了cmakegui、CLION和cmake 非常遗憾,我无法找到CMakeLists.txt中包含的编译器标志“-lws2_32” cmake_minimum_required (VERSION 3.14.0) project (BoostCMakeTutorial) set(GCC_BOOST_COMPILER_FLAG "-lws2_32") set(CMAKE_C
cmake
非常遗憾,我无法找到CMakeLists.txt中包含的编译器标志“-lws2_32”
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)
我在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提示符上看到了相同的错误,当它未包含时要在现代CMAKE中添加
-lws2_32
链接器标志,最好的方法是使用。我已在下面更新了您的示例:
cmake_minimum_required (VERSION 3.14.0)
project (BoostCMakeTutorial)
add_executable(BoostCMakeTutorial boostTcpClient.cpp)
target_link_libraries(BoostCMakeTutorial ws2_32)
您是否通过打印变量
CMake\u CXX\u FLAGS
来验证标志是否添加到了CMake中?您是否尝试使用VERBOSE=1运行make
,以查看该标志是否确实丢失?你能公布你看到的确切错误吗?@squareskittles:我试过使用VERBOSE=1
,但没有用。在cmake gui
中,字段cmake\u CXX\u FLAGS
为空。我手动添加它,然后生成。缺少-lws2_32
。@squareskittles:我也尝试使用下面的target_link_库
,但在cmake gui中打开CMakeLists.txt会弹出错误,因为它。“但是没有用”-这意味着什么?VERBOSE
命令不起作用?或者它显示缺少-lws2\u 32
标志?请编辑您的帖子,以显示您在使用目标链接库时尝试的完整命令以及出现的错误。请将目标链接库(boostcmaketourial w2\u 32)
更改为目标链接库(boostcmaketourial ws2\u 32)
,这可能有助于下一步搜索缺少该拼写错误的人,修复!如果我交换add_executable(boostcmaketurial boostTcpClient.cpp)target_link_库(boostcmaketurial w2_32)
这些行,它会给出错误,我丢失了,非常感谢squareskittlesYes,在命令中引用可执行文件之前,必须首先使用add_executable
命令定义可执行文件boostcmaketurial
。