lbevent CMake编译静态库+VS 2019 +CMake(Window)工程

引言

使用CMake+VS2019编译lbevent的静态链接库,并引入CMake项目。一般选择CMake项目是为了跨平台,而选择在Window系统开发不如直接选择VS进行项目开发。但是,对于却有一定的学习意义。

环境

  • CMake 3.8+

  • VS 2019

  • C++ 14(新手别用17,因为17新增了std::byte类型和libevent中的byte定义冲突,需要改源码!)

编译

  1. 下载 libevent-2.1.12-stable

  1. 打开CMake首页配置如下:Configure页面选择VS2019+X64

  1. Finish后第一次生成会报错,没关系选择编译参数后,多Generate几次就行了,最后选择的编译参数如下:

  1. EVENT_DISABLE_OPENSSL 免ssl(没有安装ssl组件的情况)

  1. EVENT_DISABELE_TESTS 免生成测试项目

  1. EVENT_LIBRARYTYPE = STATIC + EVENT_MSVC_STATIC_RUNTIME 生成静态链接库

  1. 生成成功后,进入build目录,使用VS2019打开libevent.sln工程。选择ALL_BUILD

CMake项目添加libevent静态库

使用到的头文件

libevent-2.1.12-stable/include目录 + libevent-2.1.12-stable/WIN32-Code目录+libevent-2.1.12-stable/build/include三个目录合一

使用到静态库文件

build/lib/Relase目录下的三个lib文件: event.lib event_core.lib event_shared.lib

另外因为是WIN32环境还需要VS开发的包 Iphlpapi.lib ws2_32.lib wsock32.lib库文件,这些文件VS的开发套件,直接在项目中引用即可!!!

最终项目的目录结构+主CMake配置如下:

PS: 本项目源码的 GIT地址为:cpp_demo git 。注意我打的是Release版本的,要运行项目最好也使用Release模式!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用CMake编译使用GLAD的工程的步骤: 1. 在工程目录下创建一个CMakeLists.txt文件,内容如下: ```cmake cmake_minimum_required(VERSION 3.10) project(MyProject) # 添加可执行文件 add_executable(MyProject main.cpp) # 添加GLAD库 add_subdirectory(glad) include_directories(glad/include) target_link_libraries(MyProject glad) # 添加其他依赖库 # target_link_libraries(MyProject ...) ``` 2. 在工程目录下创建一个glad目录,并在glad目录下下载GLAD库。 3. 在glad目录下再创建一个CMakeLists.txt文件,内容如下: ```cmake add_library(glad src/glad.c) ``` 4. 在工程目录下创建main.cpp文件,内容如下: ```cpp #include <glad/glad.h> #include <GLFW/glfw3.h> #include <iostream> void framebuffer_size_callback(GLFWwindow* window, int width, int height); void processInput(GLFWwindow *window); // 设置窗口大小 const unsigned int SCR_WIDTH = 800; const unsigned int SCR_HEIGHT = 600; int main() { // 初始化GLFW glfwInit(); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); // 创建窗口 GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "MyProject", NULL, NULL); if (window == NULL) { std::cout << "Failed to create GLFW window" << std::endl; glfwTerminate(); return -1; } glfwMakeContextCurrent(window); glfwSetFramebufferSizeCallback(window, framebuffer_size_callback); // 初始化GLAD if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { std::cout << "Failed to initialize GLAD" << std::endl; return -1; } // 渲染循环 while (!glfwWindowShouldClose(window)) { processInput(window); // 渲染指令 glClearColor(0.2f, 0.3f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); // 交换缓冲区 glfwSwapBuffers(window); glfwPollEvents(); } // 清理资源 glfwTerminate(); return 0; } void framebuffer_size_callback(GLFWwindow* window, int width, int height) { glViewport(0, 0, width, height); } void processInput(GLFWwindow *window) { if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) glfwSetWindowShouldClose(window, true); } ``` 5. 在工程目录下打开命令行终端,执行以下命令: ```bash mkdir build cd build cmake .. make ``` 6. 编译完成后,在build目录下会生成可执行文件MyProject。运行该可执行文件即可看到一个黑色的窗口。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值