Linux(Ubuntu) OpenGL 開發環境
在 PC 平台上開發 OpenGL 可以使用的輔助工具有很多選擇,這里我主要參考了 learnopengl 的配置,使用 GLFW 和 GLAD.
准備
基本編譯庫
sudo apt-get install build-essential
需要 OpenGL 庫
sudo apt-get install libgl1-mesa-dev
GLFW
操作指南:http://www.glfw.org/docs/latest/compile_guide.html
下載源碼,運行 cmake
正式編譯:
make
sudo make install
GLAD
在這個網站上生成合適的庫,我選擇了 C/C++ OpenGL Core Version 4.6 然后點擊 GENERATE 即可得到壓縮包。把壓縮包內 include 目錄的東西放到本機 include 目錄下(/usr/include), 把 src 下的源碼拷貝到工程內。
編譯
編碼,示范代碼如下:
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
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);
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
while(!glfwWindowShouldClose(window))
{
glClear(GL_COLOR_BUFFER_BIT);
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
}
編譯方式:
g++ -o run.out GlWindow.cpp glad.c -lglfw3 -lGL -lX11 -lpthread -lXrandr -lXxf86vm -lXinerama -lXcursor -lXi -ldl
可以出現一個暗綠色的窗口。
參考:
https://learnopengl.com/Getting-started/Creating-a-window
Howto Install OpenGL Development Environment
Undefined References Compiling OpenGL/glfw/glew on Ubuntu(g++) [duplicate]
