安装OpenGL库
sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev
安装GLFW
sudo apt install libglfw3-dev
安装GLAD
在这个网站上生成合适的库,我选择了 C/C++ OpenGL Core Version 4.6 然后点击 GENERATE 即可得到压缩包。
代码结构
5.CMakeLists.txt
cmake_minimum_required(VERSION 3.21)
project(my_project)
find_package(OpenGL REQUIRED)
add_library(glad glad/src/glad.c)
target_include_directories(glad PUBLIC glad/include)
set (CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINK_EXECUTABLE} -ldl")
add_executable(main main.cpp)
target_link_libraries(main glfw ${GL_LIBRARY} glad)
6.测试代码
#include <glad/glad.h> // 必须为首句
#include <GLFW/glfw3.h>
#include <iostream>
void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
glViewport(0, 0, width, height);
}
int main()
{
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
//glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
GLFWwindow* window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL);
if (window == NULL)
{
std::cout << "Failed to create GLFW window" << std::endl;
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
{
std::cout << "Failed to initialize GLAD" << std::endl;
return -1;
}
glViewport(0, 0, 800, 600);
glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
while(!glfwWindowShouldClose(window))
{
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
}