C/C++编程:win10下使用cmake+clion编译libhv

1059 篇文章 274 订阅

编译

下载并解压libhv
项目地址:https://github.com/ithewei/libhv.git
码云镜像:https://gitee.com/libhv/libhv.git
然后开始编译

libhv-master> mkdir mingw
libhv-master> cd mingw
libhv-master> CMake -G "MinGW Makefiles" ../
libhv-master> mingw32-make libhv libhv_static

在这里插入图片描述
至此,libhv编译成功,库文件在build\lib下
在这里插入图片描述

使用

新建一个工程、将include、lib\libhv.dll复制到工程目录下。

在这里插入图片描述

CMakeLists.txt

cmake_minimum_required(VERSION 3.15)
project(test_dll)

set(CMAKE_CXX_STANDARD 11)

include_directories(${PROJECT_NAME}/include)
link_directories(lib)

add_executable(${PROJECT_NAME} main.cpp)

target_link_libraries(${PROJECT_NAME} libhv.dll)

main.cpp




#include <iostream>
#include "include/hv/hv.h"
#include "include/hv/HttpServer.h"

int main() {
    HttpService service;
    service.base_url = "/v1/api";
    service.POST("/echo", [](HttpRequest* req, HttpResponse* res) {
        res->body = req->body;
        return 200;
    });

    http_server_t server;
    server.port = 8080;
    server.service = &service;
    http_server_run(&server);
    std::cout << "Hello, World!" << std::endl;
    return 0;
}


编译,出错:inet_ntop was not declared in this scope

看了下源码,其实是有这个函数的(ws2tcpip.h中),仅当宏 _WIN32_WINNT >= 0x600时才可用,而我们的宏_WIN32_WINNT默认时0x502,在sdkddkver.h中有各类值,0x502是_WIN32_WINNT_WS03,而0x600是WIN6、VISTA、WS08、LONGHORN,所以只要是WinServer08和VISTA及以上就可以使用。我们在main.cpp中第一行加入:

#define _WIN32_WINNT _WIN32_WINNT_WIN7

在这里插入图片描述

解决:
在这里插入图片描述
在这里插入图片描述

测试:
在这里插入图片描述
成功!!!!!!!!!!!!!!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值