如何在cmake中链接winsock?

Posted

技术标签:

【中文标题】如何在cmake中链接winsock?【英文标题】:how to link winsock in cmake? 【发布时间】:2013-02-27 18:34:39 【问题描述】:

我只找到了这个字符串

    find_library(WSOCK32_LIBRARY wsock32)
    find_library(WS2_32_LIBRARY ws2_32)

(我是 cmake 的初学者) 如何在cmake中链接winsock2(winsock?)?

【问题讨论】:

【参考方案1】:

由于它们都是 Windows SDK 的一部分,因此您无需搜索它们。假设您已安装 SDK,您可以执行以下操作:

add_executable(MyExe main.cpp)
if(WIN32)
  target_link_libraries(MyExe wsock32 ws2_32)
endif()

【讨论】:

确实,您“不应该”需要搜索它们。但是,如果您这样做…… CMAKE 可以找到它们吗?例如,如果您通过不寻常的编译器驱动程序使用 MinGW? 是的,您可以为每个库使用find_library 来获取它的完整路径,然后只需将结果包含在您的target_link_libraries 调用中以代替裸露的wsock32 和/或@ 987654326@.

以上是关于如何在cmake中链接winsock?的主要内容,如果未能解决你的问题,请参考以下文章

如何链接winsock.lib?

如何在 Winsock 中发送文件(http 方式)

如何在 CMake 中指定链接类型?

如何在 cmake 中正确链接库?

如何在 CMake 中链接预编译库?

我如何在 CMAKE 中链接 GLFW 和 Dear ImGUI