项目需要做一个简单的Windows下的socket client端。程序不复杂,不准备使用厚重的Visual Studio来开发了。
在已有的Windows + VS Code + CMake + mingw 的环境下写socket程序。
Windows下的Socket程序与Linux的gnu的Socket不同,使用的是winsock2.h, ws2_32.lib来实现的。不需要去下载或找到ws2_32.lib这个文件。
在CMakeList.txt的配置中加入下面一句话就可以解决。
target_link_libraries(${CMAKE_PROJECT_NAME} ws2_32)
将简单的c 代码,以及cmakeist.txt 贴到这里。
#include <stdio.h> #include <stdio.h> #include <stdlib.h> #include<winsock2.h> int main(int argc, char** argv) { WSADATA wsaData; int iResult = WSAStartup(MAKEWORD(2 ,2), &wsaData); if (iResult != 0) { printf("error at WSASturtup\n"); return 0; } }
cmakelist.txt
cmake_minimum_required(VERSION 3.0.0) project(rtt-client VERSION 0.1.0) include(CTest) enable_testing() file(GLOB SOURCES *.c) add_executable(${CMAKE_PROJECT_NAME} rtt-client.c) target_link_libraries(${CMAKE_PROJECT_NAME} ws2_32) set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) include(CPack)