【发布时间】:2019-06-18 17:29:56
【问题描述】:
我能够通过 windows 命令提示符成功编译和执行一个包含 boost 库的示例 C++ 程序。
我想使用 make,因此我想将 CMAKE(3.15) 与 MinGW g++ 一起使用。
我在 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 提示符上看到相同的错误
【问题讨论】:
-
您是否通过打印变量
CMAKE_CXX_FLAGS来验证标志已添加到 CMake 中?您是否尝试使用VERBOSE=1运行make以查看标志确实丢失了?你能发布你看到的确切错误吗? -
@squareskittles :我尝试使用
VERBOSE=1,但没有用。在cmake-gui中,CMAKE_CXX_FLAGS字段为空。我手动添加它然后生成。-lws2_32不见了。 -
@squareskittles :我也尝试在link 之后使用
target_link_libraries,但是在cmake-gui 中打开CMakeLists.txt 会因此而弹出错误。 -
“但没用” - 这是什么意思?
VERBOSE命令不起作用?或者它表明-lws2_32标志丢失了? -
请编辑您的帖子以显示您在使用
target_link_libraries时尝试的完整命令,以及您遇到的错误。