如何在CMake中链接Winsock?

25
我只找到了这些字符串
    find_library(WSOCK32_LIBRARY wsock32)
    find_library(WS2_32_LIBRARY ws2_32)

我是一名CMake的初学者,如何在CMake中链接Winsock2(或Winsock)?

1个回答

49

由于这两个都是 Windows SDK 的一部分,所以您不需要搜索它们。假设您已经安装了 SDK,您可以这样做:

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

2
事实上,你“不应该”需要为它们进行搜索。但是,在万一你需要的情况下... CMAKE 能否找到它们?例如,如果你正在使用通过非常规编译器驱动程序的 MinGW? - cheshirekow
2
是的,你可以使用find_library获取每个库的完整路径,然后在target_link_libraries调用中,只需将结果包含在裸 wsock32 和/或 ws2_32 的位置即可。 - Fraser

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接