項目需要做一個簡單的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)
