OpenGL学习---环境搭建
发布日期:2021-05-10 06:29:37 浏览次数:28 分类:精选文章

本文共 1904 字,大约阅读时间需要 6 分钟。

GLFW与CMake环境配置及OpenGL开发流程

环境配置

我的开发环境为:

操作系统:Windows 10
开发工具:Visual Studio 2019
库Planet

  • GLFW 3.3.2
  • CMake 3.18.0

GLFW安装与配置

GLFW下载与解压

GLFW是一个跨平台的开源窗口管理库,支持多种编程语言。

下载 GeForce/ 会得到一个压缩包,我会解压后使用它。可以手动将其添加到项目路径。

CMake 安装与配置

CMake 是一个强大的跨平台配置工具,支持通过脚本文件自定义项目设置。安装过程如下:

  • 打开 CMake 3.18.0 的安装程序,按照提示进行安装,记得记住安装路径。安装完成后,记得在系统环境变量路径中添加 CMake 的 bin 文件夹。
  • 在 GLFW 根目录下打开terminal,输入以下命令:
  • cmake -D CMAKE_INSTALL_PREFIX=路径/to/install/Dir/ ....

    然后运行生成命令,这样就可以得到安装文件。

    项目编译

    将 CMake 脚本应用到 GLFW 项目,按照下面的步骤操作:

  • 在终端或命令提示符中进入 GLFW 的根目录,输入以下命令:
  • cmake .        # 没有生成可以选择默认设置,默认设置首次运行时需要选择需要安装的位置和其他设置cmake --build . # 生成编译结果cmake --install . # 安装到指定安装目录

    等待编译完成后,GLFW 库文件会被生成在 GLFW/src/Debug 文件夹。

    项目设置

    GLFW 作为库依赖

    为了让项目顺利编译,Fastify 一些常见的做法:

  • 我会为项目源代码中的第三方库文件和头文件创建一个专门的文件夹,方便日后使用。比如我创建了一个 includes 文件夹和一个 libs 文件夹。
  • 将 GLFW 的开发头文件复制到 includes 文件夹。
  • 将编译后的 glfw3.lib 复制到 libs 文件夹。
  • 工作环境配置

    在Visual Studio 中:

  • 右键点击项目,选择属性(Properties)。
  • 在 VC++ 层,选择包含路径,添加 MyLib\includes 绝对路径。
  • 在 链接器 层,选择公共依赖项,添加 MyLib\libs 绝对路径。
  • 确保项目设置中选中正确的平台选项,编译目标正确配置。
  • GLFW 扩展与配置

    GLAD 加载库

    为了更方便地使用现代 OpenGL 功能, GLAD 几年来被广泛使用。安装步骤如下:

  • 打开 GLAD 的在线下载页面,将语言选为 C/C++, API 选为 3.3 及以上的 OpenGL },
  • 生成选项中选择生成加载器功能。
  • 下载压缩包,将 include 文件夹中的文件复制到 MyLib\includes,将 src 中的 glad.c 文件添加到项目中。
  • 代码验证

    为了测试配置是否成功,我会编写一个简单的OpenGL程序:

    #include 
    # include
    int main(){ glfwInit(); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL); if (!window) { return 0; } while (!glfwWindowShouldClose(window)) { glfwSwapBuffers(window); glfwPollEvents(); } return 0;}

    运行此代码,如果没有错误提示且窗口出现,则配置成功。

    注意事项

  • 在设置 Visual Studio 项目属性时,要谨慎添加包含路径和库路径,确保路径正确。
  • 在开发阶段,保持编译器和显卡驱动程序版本一致。
  • 查阅官方文档,如 [ GLFW 官方文档 ] 和 [ CMake 官方文档 ],以更好地理解每一步的含义和可能的权限解释。
  • 这个过程可能确实复杂,但一步步完成后能获得一个高效的开发环境。

    上一篇:OpenGL学习---HelloOpenGL
    下一篇:KMP算法

    发表评论

    最新留言

    做的很好,不错不错
    [***.243.131.199]2025年04月18日 13时10分06秒