cmake: MinGW编译时为httplib.h增加连接库支持

Posted 10km

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cmake: MinGW编译时为httplib.h增加连接库支持相关的知识,希望对你有一定的参考价值。

httplib.h是一个只有一个头文件的C++11语言的跨平台 HTTP/HTTPS 库。

如果使用在自己的项目中,在MinGW下编译时,会报连接错误,因为找不到socket相关库。

所以在连接时需要参照httplib.h中对MSVC的库依赖,添加ws2_32,crypt32,cryptui几个库的

#ifdef _MSC_VER
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "crypt32.lib")
#pragma comment(lib, "cryptui.lib")
#endif

如果你的项目是用CMake构建,可以如下对target添加ws2_32,crypt32,cryptui库依赖

target_link_libraries($YOUR_TAREGET 
	# MINGW 连接库支持
	$<$<BOOL:$MINGW>:ws2_32>	$<$<BOOL:$MINGW>:crypt32>	$<$<BOOL:$MINGW>:cryptui> )
# MINGW 为CMake 内置的变量用于检测当前编译器是否为MinGW

以上是关于cmake: MinGW编译时为httplib.h增加连接库支持的主要内容,如果未能解决你的问题,请参考以下文章

CMAKE利用MinGW32编译

使用 cmake 和 mingw-w64 错误编译测试程序

MinGw Gcc / Gtk+3 / Cmake 编译程序. 如何去掉控制台窗口?

windows 7 x64用cmake,mingw32安装LLVM,编译时报错MemoryBuffer.cpp:381:25: error

Clion使用MinGW编译好的boost库

Cmake与MinGW配合使用