参考:OpenGL: Ubuntu 上的安装

1、打开GLAD的在线服务

2、Ubuntu上查看OpenGL版本

注:可下载更高版本的(不一定按照查询的OpenGL版本)
发现版本太低有的变量可能未定义

(1)创建test.c文件

#include <stdio.h>
#include <GL/glut.h>int main(int argc, char** argv)
{glutInit(&argc,argv);//显示模式初始化glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);//定义窗口大小glutInitWindowSize(300,300);//定义窗口位置glutInitWindowPosition(100,100);//创建窗口glutCreateWindow("OpenGL Version");const GLubyte* name = glGetString(GL_VENDOR); //返回负责当前OpenGL实现厂商的名字const GLubyte* biaoshifu = glGetString(GL_RENDERER); //返回一个渲染器标识符,通常是个硬件平台const GLubyte* OpenGLVersion =glGetString(GL_VERSION); //返回当前OpenGL实现的版本号const GLubyte* gluVersion= gluGetString(GLU_VERSION); //返回当前GLU工具库版本printf("OpenGL实现厂商的名字:%s\n", name);printf("渲染器标识符:%s\n", biaoshifu);printf("OOpenGL实现的版本号:%s\n",OpenGLVersion );printf("OGLU工具库版本:%s\n", gluVersion);return 0;
}

(2)运行查看

编译:gcc test.c -o test -lglut -lGL -lGLU
运行./test 即可查看对应版本

3、generate生成glad.zip解压


glad和KHR文件夹复制到/usr/local/include/目录下
并添加glad.c文件到稍后的工程中

sudo cp -r glad /usr/local/include/
sudo cp -r KHR /usr/local/include/

4、测试

main.cpp

// System Headers
#include <glad/glad.h>
#include <GLFW/glfw3.h>// Standard Headers
#include <cstdio>
#include <cstdlib>
#include <iostream>void framebuffer_size_callback(GLFWwindow* window, int width, int height);//回调函数原型声明
void processInput(GLFWwindow *window);// settings
const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600;int main(int argc, char * argv[]) {//初始化GLFWglfwInit();glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
#ifdef __APPLE__glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // uncomment this statement to fix compilation on OS X
#endif//创建一个窗口对象GLFWwindow* window = glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, "FirstGL", NULL, NULL);if (window == NULL){std::cout << "Failed to create GLFW window" << std::endl;glfwTerminate();return -1;}//通知GLFW将我们窗口的上下文设置为当前线程的主上下文glfwMakeContextCurrent(window);//对窗口注册一个回调函数,每当窗口改变大小,GLFW会调用这个函数并填充相应的参数供你处理glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);//初始化GLAD用来管理OpenGL的函数指针if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)){std::cout << "Failed to initialize GLAD" << std::endl;return -1;}//渲染循环while(!glfwWindowShouldClose(window)){// 输入processInput(window);// 渲染指令glClearColor(0.2f, 0.3f, 0.3f, 1.0f);glClear(GL_COLOR_BUFFER_BIT);// 检查并调用事件,交换缓冲glfwSwapBuffers(window);//检查触发事件glfwPollEvents();    //交换颜色缓冲}//释放/删除之前的分配的所有资源glfwTerminate();return EXIT_SUCCESS;
}//输入控制,检查用户是否按下了返回键(Esc)
void processInput(GLFWwindow *window)
{if(glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)glfwSetWindowShouldClose(window, true);
}// 当用户改变窗口的大小的时候,视口也应该被调整
void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{// 注意:对于视网膜(Retina)显示屏,width和height都会明显比原输入值更高一点。glViewport(0, 0, width, height);
}

将 glad.c 放在和该 main.cpp 在同一目录下, 编译g++ -o out main.cpp glad.c -lglfw3 -lGL -lm -lXrandr -lXi -lX11 -lXxf86vm -lpthread -ldl -lXinerama -lXcursor
运行./out
结果:出现了一个图形框

Ubuntu下安装glad相关推荐

  1. Ubuntu 下安装thttpd Web服务器

    不知道大家是不是真的需要用appache这么复杂的功能这么强大的web server,其实有很多时候使用webserver也只是一种远程共享访问的方式.这里,Ubuntu repository的提供了 ...

  2. Ubuntu下安装Apache+PHP+Mysql

    Ubuntu下安装 apache+php+mysql文本服务器! ------------------------------------------------------------------- ...

  3. ubuntu下安装ftp服务器

    ubuntu下安装ftp服务器 Ftp服务器是使用以vsftp为例. 1. 安装     $sudo aptitude install vsftpd     $ps aux | grep 'ftp' ...

  4. linux pureftp mysql_在Ubuntu下安装apache2+php5+mysql5+pureftp+ftp

    在Ubuntu下安装apache2+php5+mysql5+pureftp+ftp 一.安装Ubuntu7.04 Desktop版 二.ubuntu Linux下手工安装mysql5 1.下载mysq ...

  5. ubuntu下安装windows虚拟机

    ubuntu下安装win7虚拟机总结 ubuntu16.04 虚拟机 安装win7/win10 http://WIN10:你不能访问此共享文件夹,解决方法 VirtualBox虚拟机剪贴板共享

  6. Linux :debian(ubuntu)下安装和使用haskell

    文章目录 Linux :debian(ubuntu)下安装haskell 安装 使用 Linux :debian(ubuntu)下安装haskell 安装 直接使用apt进行安装: sudo apt- ...

  7. Linux: debian/ubuntu下安装和使用Java 11

    Linux: debian/ubuntu下安装和使用Java 11 只需6行命令: su - echo "deb http://ppa.launchpad.net/linuxuprising ...

  8. Linux: debian/ubuntu下安装和使用Java 8

    Linux: debian/ubuntu下安装和使用Java 8 7行命令解决问题: su - echo "deb http://ppa.launchpad.net/webupd8team/ ...

  9. Linux: debian/ubuntu下安装Neo4j

    文章目录 Linux: debian/ubuntu下安装Neo4j Linux: debian/ubuntu下安装Neo4j Neo4j的官方仓库地址:neo4j/neo4j: Graphs for ...

  10. Ubuntu下安装mysql与mysql workbench

    其他相关链接 Ubuntu 安装jdk:[链接] Ubuntu安装eclipse:[链接] Ubuntu下安装mysql与mysql workbench:[链接] Ubuntu配置tomcat9:[链 ...

最新文章

  1. 第三天:Vue的组件化
  2. 成为Java高手的25个学习要点
  3. 零基础Java学习之包(Package)
  4. openNebula 搭建
  5. HDU 1159.Common Subsequence【动态规划DP】
  6. java学完jdk后学什么_学完了javase之后要学什么?
  7. (HDU)1157 -- Who's in the Middle(哪个居中)
  8. halcon算子翻译——dev_set_window
  9. Win7下64位扫雷逆向以及辅助制作
  10. python创建一个银行账户类account_银行账户(示例代码)
  11. html+js经纬度输入框值的范围限制和输入限制
  12. 滴答清单微信登录界面丢失
  13. 4刀最多切割一个正方体为多少部分
  14. Multiplier和Finger的区别和优劣讨论
  15. iphone6 和 iphone6 plus 屏幕适配问题
  16. 人人都能学会系列之ThreadLocal
  17. 前端学习:jQuery学习--Day03
  18. Spring Boot + Spring Security + JWT + 微信小程序登录
  19. 2021-CVPR-图像修复论文导读《TransFill: Reference-guided Image Inpainting by Merging Multiple Color and ~~~》
  20. Coursera半价优惠

热门文章

  1. Python爬虫初学(3)登陆武汉理工大学教务处
  2. 大学生搭建自己的web项目服务器心得
  3. 最大公约数,最小公倍数的求法
  4. RTX3060安装pytorch
  5. python复数类型及其特点和分布地区_各种气候类型及其特点、分布规律、主要分布地区、数值特征...
  6. 一篇博文搞定英文常见单词后缀(完全版)
  7. 九、多线程(高琪java300集+java从入门到精通笔记)
  8. cJSON库的使用(一)
  9. [原创]如何顺利通过中国电信Brew平台软件测试?
  10. 百度wz开户竞价推广如何做到降低平均点击价格