[wsl2] wsl2上安装使用cmake+OpenGL教程

一、前提

  1. 系统为windows11,并且使用wsl2(ubuntu);
  2. ubuntu中安装了基本的g++, cmake编译工具;
  3. 在windows中使用X-Server作为wsl2的显示GUI;

二、安装OpenGL

安装opengl的基本步骤为:安装glfw->安装glad->修改OpenGL渲染方式->编写C++代码运行。下面是详细步骤:

OpenGL, GLFW 和 GLAD 的简要说明(glfw和glad有什么区别呢-coskgid的回答):

  • OpenGL:是一个标准/规范,具体的实现是由驱动开发商针对特定显卡实现的。
  • GLFW:是一个专门针对OpenGL的C语言库,提供了一些渲染物体所需的最低限度的接口。它帮助用户创建OpenGL上下文、定义窗口参数以及处理用户键盘鼠标输入;
  • GLAD:是用来管理OpenGL的函数指针的。由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。所以任务就落在了开发者身上,开发者需要在运行时获取函数地址并将其保存在一个函数指针中供以后使用。取得地址的方法因平台而异,代码非常复杂,而且很繁琐,我们需要对每个可能使用的函数都要重复这个过程。幸运的是,有些库能简化此过程,其中GLAD是目前最新,也是最流行的库。

1. 安装 GLFW

  1. GLFW官网下载glfw源代码,本文假设文件名为glfw-3.3.8.zip
  2. glfw-3.3.8.zip复制到ubuntu中,本文假设将文件复制到/home/user/目录下;
  3. /home/user/目录下解压glfw-3.3.8.zip
    unzip glfw-3.3.8.zip
    
  4. 编译并安装glfw
    # 进入 解压目录
    cd glfw-3.3.8
    # 新建build目录 用于存储编译glfw的文件
    mkdir build
    # 进入build目录
    cd build
    # 使用cmake生成Makefile文件用于编译glfw
    cmake ..
    # 编译安装 glfw
    sudo make install
    

若编译安装成功,在/usr/local/include/目录下应该存在GLFW头文件目录,在/usr/local/lib/目录下存在libglfw3.a链接库文件。

2. 安装 glad

  1. 查看系统的OpenGL版本
    glxinfo | grep "OpenGL version"
    

如果没有glxinfo命令需要先安装mesa-utils, 安装命令如下:

sudo apt-get install mesa-utils

可能的显示结果如下:

~$ glxinfo | grep "OpenGL version"
OpenGL version string: 4.1 (Compatibility Profile) Mesa 22.2.5-0ubuntu0.1~22.04.3

可以看到我的电脑OpenGL版本为4.1
2. 去glad官网gl下拉框中选择对应版本,本文中选择4.1。将profile设置为Core,其他不用边,点击最后的GENERATE按钮,会自动生成需要的glad.zip文件,点击下载glad.zip
3. glad.zip解压后文件结构如下:

.
├── include
│   ├── KHR
│   │   └── khrplatform.h
│   └── glad
│       └── glad.h
└── src
    └── glad.c

include/中的KHR/glad/目录复制到usr/local/include/目录下。
src/目录下的glad.c暂时不管(glad.c需要放到编写的C++代码工程中,在4.编写代码运行部分有示例)。

3. 修改渲染方式为direct render

OpenGL渲染方式改为direct render,如果不修改运行opengl程序时可能会出现Failed to create GLFW window报错。
修改方式如下:
将下面一句话写入~/.bashrc文件里

# 设置opengl 直接渲染, 用于使用 x-service 显示glfw窗口
LIBGL_ALWAYS_INDIRECT=0

使.bashrc文件生效

source .barshrc

4. 编写代码运行

wsl2下使用C++, cmake, OpenGL的示例代码如下:

  1. 将步骤2. 安装 glad中的glad.c文件复制到main.cpp同目录下;
  2. 代码内容:
    main.cpp文件:
    #include <glad/glad.h>
    #include <GLFW/glfw3.h>
    
    int main(void)
    {
        GLFWwindow* window;
    
        /* Initialize the library */
        if (!glfwInit())
            return -1;
    
        /* Create a windowed mode window and its OpenGL context */
        window = glfwCreateWindow(640, 480, "GLFW CMake starter", NULL, NULL);
        if (!window)
        {
            glfwTerminate();
            return -1;
        }
    
        /* Make the window's context current */
        glfwMakeContextCurrent(window);
    
        /* 使用 glad 管理函数地址 */
        gladLoadGLLoader((GLADloadproc) glfwGetProcAddress);
    
        glClearColor( 1.0f, 0.3f, 0.4f, 0.0f );
    
        /* Loop until the user closes the window */
        while (!glfwWindowShouldClose(window))
        {
            /* Render here */
            glClear(GL_COLOR_BUFFER_BIT);
    
            /* Swap front and back buffers */
            glfwSwapBuffers(window);
    
            /* Poll for and process events */
            glfwPollEvents();
        }
    
        glfwTerminate();
        return 0;
    }
    
    CMakeLists.txt文件:
    cmake_minimum_required(VERSION 3.10)
    set(CMAKE_C_STANDARD 11)
    set(CMAKE_CXX_STANDARD 14)
    project(test)
    find_package(glfw3 REQUIRED)
    file(GLOB project_file main.cpp glad.c)
    add_executable(${PROJECT_NAME} ${project_file})
    target_link_libraries(${PROJECT_NAME} glfw)
    
  3. 编译运行示例程序:
    mkdir build
    cd build
    cmake ..
    make
    # 运行示例程序
    ./test
    

运行结果如下:
glfw+glad+cmake运行示例

三、参考

1.Compiling GLFW-Generating files with CMake
2.Building applications-With CMake and GLFW source
3.Context guide-Loading extension with a loader library

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装WSL2 Ubuntu 22.04的教程如下: 1. 打开Microsoft Store,并搜索Ubuntu 22.04。点击安装按钮来下载并安装Ubuntu 22.04分发版。 2. 安装完成后,打开Windows Terminal。如果你还没有安装Windows Terminal,请到Microsoft Store下载并安装。 3. 在Windows Terminal中,点击"+"按钮来添加新的终端。选择Ubuntu 22.04,并进行相应的配置。 4. 在Windows Terminal的Ubuntu 22.04终端中,输入以下命令来导入并安装WSL2 Ubuntu 22.04分发版: ``` wsl --import Ubuntu-22.04 f:\wsl-ubuntu22.04 f:\ubuntu22.04.tar --version 2 ``` 这个命令将会导入Ubuntu 22.04的文件系统,并将其安装在f:\wsl-ubuntu22.04文件夹中。 5. 安装完成后,可以通过在Windows Terminal中选择Ubuntu 22.04终端来启动WSL2 Ubuntu 22.04。然后你就可以按照你的需求进行配置和使用了。 希望以上步骤对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [win10/win11下搭建wsl2+ubuntu20.04/ubuntu22.04开发环境](https://blog.csdn.net/iamzhoujunjia/article/details/125268495)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [安装WSL2和Ubuntu22.04版本](https://blog.csdn.net/HHHBan/article/details/126843786)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值