参照
编译指令
参照g++ 的编译顺序: 从右边到左边, 所以很多情况下,如果编译出错,需要调整一下编译顺序.
否则就会出现,xxx找不到.
还有一点,需要注意:
linux 环境下,需要
创建软链接,实现opengl的库的搭建
sudo ln -s xxxxxxxxxxxx /usr/bin/libGL.so
{ "tasks": [ { "type": "cppbuild", "label": "C/C++: g++ 生成活动文件", "command": "/usr/bin/g++", "args": [ // g++ main.cpp -std=c++17 -lglfw -lvulkan -ldl -lpthread -lX11 -lXxf86vm -lXrandr -lXi -o run "./main.cpp", "./glad.c", "-fdiagnostics-color=always", "-g", "-o", "main", "-lglfw", "-lvulkan", "-ldl", "-lpthread", "-lX11", "-lXxf86vm", "-lXi", "-lGL", "-lXrandr", ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "调试器生成的任务。" } ], "version": "2.0.0" }
#include#include #include using namespace std; // 重绘 窗口 void framebuffer_size_callback(GLFWwindow* window, int width, int height) { glViewport(0, 0, width, height); } // 获取用户esc键 // 并且退出 void processInput(GLFWwindow *window) { if(glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) glfwSetWindowShouldClose(window, true); } 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 == NULL) { std::cout << "Failed to create GLFW window" << std::endl; glfwTerminate(); return -1; } glfwMakeContextCurrent(window); // 初始化glad if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { std::cout << "Failed to initialize GLAD" << std::endl; return -1; } // 回调函数 // 根据用户的当前的窗口大小,进行调整 glfwSetframebufferSizeCallback(window, framebuffer_size_callback); // 循环窗口 // 不断的绘制窗口事件 while(!glfwWindowShouldClose(window)) { // 注册用户按键函数 processInput(window); // 检查并调用事件,交换缓冲 glfwSwapBuffers(window); glfwPollEvents(); } // 终止,并释放所有的资源 glfwTerminate(); return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)