Ubuntu 16.04配置OpenGL教程
sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev
sudo apt-get install libglu1-mesa-dev
sudo apt-get install freeglut3-dev
网上有些教程最后一步是sudo apt-get install libglut-dev,但是会报错Unable to locate package libglut-dev,谷歌错误信息后搜到stackoverflow上有人问这个问题,http://askubuntu.com/questions/96087/how-to-install-opengl-glut-libraries,推荐安装freeglut3-dev

头文件和动态库文件(libGLU.so libGL.so libglut.so)分别如上图
导入环境变量,方便编译,打开.bashrc文件,在末尾加上
export GLCONF="-lGL -lGLU -lglut"
然后g++ test.cpp $GLCONF就可以编译了
我用了YouCompleteMe插件,于是把ycm配置文件拷到了OpenGL程序的根目录下
cp ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py ~/opengl/
然后打开python配置文件,在flags末尾中加上,这样就可以自动补全OpenGL的函数了

然后在网上找个OpenGL的示例代码
// File Name: example.cpp
#include <GL/glut.h> void draw()
{
glClearColor(1, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT);
glFlush();
} int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(100, 100);
glutInitWindowSize(300, 300);
glutCreateWindow("My First OpenGL Program");
glutDisplayFunc(draw);
glutMainLoop();
return 0;
}
其实代码都挺好理解,glut是前缀,后面的函数名很直观,参考博客:http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html
简单的代码只需要改下关键的draw函数,因此我用bash写了个OpenGL代码模板生成器
#!/bin/bash
# File Name: opengl.sh
# Created Time: Thu 02 Mar 2017 06:48:03 AM PST
if [ $# -lt 1 ]; then
echo "usage: ./opengl.sh <filename>"
exit 1
fi FileName=$1
# 若文件存在则直接打开, 不删除原来文件
if [ -e $FileName ]; then
vim $FileName
exit 1
fi # 生成OpenGL框架
echo "// File Name: $FileName" >> $FileName
echo "#include <GL/glut.h>" >> $FileName
echo "" >> $FileName
echo "void draw()" >> $FileName
echo "{" >> $FileName
echo -e "\t" >> $FileName
echo "}" >> $FileName
echo "" >> $FileName
echo "int main(int argc, char** argv)" >> $FileName
echo "{" >> $FileName
echo -e "\tglutInit(&argc, argv);" >> $FileName
echo -e "\tglutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);" >> $FileName
echo -e "\tglutInitWindowPosition(100, 100);" >> $FileName
echo -e "\tglutInitWindowSize(300, 300);" >> $FileName
echo -e "\tglutCreateWindow(\"My First OpenGL Program\");" >> $FileName
echo -e "\tglutDisplayFunc(draw);" >> $FileName
echo -e "\tglutMainLoop();" >> $FileName
echo -e "\treturn 0;" >> $FileName
echo "}" >> $FileName vim $FileName +6 # 打开时直接跳转到draw()函数中那一行
exit 0
可以先把代码复制进去在写echo时可以调用vim命令批量添加TAB
:28,33s/^\(.*\)$/echo -e "\\t\1"/g
比如我这句就是在28行到33行(行首无空格或tab键)用echo -e ""把代码放在引号里
:17,34s/\(.*\)/\1 >> $FileName/g
17行到34行末尾添加 >> $FileName重定向输入到文件中,之前是用标准输出查看echo是否正确。
-----------------------------------------------------------------------------------------------------------------------
然后我又丧病地想把这个弄成系统命令,发现应该没有哪个程序叫gl,于是我就写个C++程序调用opengl.sh然后都放在bin目录下=。=
// File Name: gl.cpp
#include <stdio.h>
#include <stdlib.h>
#include <string> int main(int argc, char** argv)
{
if (argc < 2) {
fprintf(stderr, "usage: gl <pathname>\n");
exit(1);
}
std::string cmd = "./opengl.sh ";
cmd.append(argv[1]);
system(cmd.c_str());
return 0;
}
命令
g++ gl.cpp -o gl
sudo cp gl opengl.sh /bin/
然后就可以使用命令gl test.cpp来创建OpenGL代码模板了,而且想要修改的时候只用修改opengl.sh就行,不需要重新编译cpp

-----------------------------------------------------------------------------------------------------------------------
发现自己越来越喜欢Linux编程环境了,命令行真的超级棒!最近用VS写代码时都不太习惯了。虽然也有快捷键,比如Ctrl+Shift+H打开全局替换窗口,但是真的不如vim命令模式下直接正则替换方便。
Ubuntu 16.04配置OpenGL教程的更多相关文章
- ubuntu 16.04 上opengl 的安装以及例子程序编译执行
因为最近在移植 Qt5.7 + opengl , 遇到了难以越过的山峰,没有办法,试着在 ubuntu 16.04上将 opengl 配置以下,记录: 安装相关的库: sudo apt-get ins ...
- Ubuntu 16.04配置OpenCV 3.1.0 for Java
我们都知道,OpenCV是基于C++的开源计算机视觉库,但是从2.4.4版本开始提供了Java绑定,也就是说,我们也可以使用Java来开发基于OpenCV的计算机视觉应用.目前,最新的版本是3.1.0 ...
- Ubuntu 16.04配置国内高速apt-get更新源【转】
转自:https://blog.csdn.net/twang0x80/article/details/79782753 Ubuntu 16.04下载软件速度有点慢,因为默认的是从国外下载软件,那就更换 ...
- Ubuntu 16.04配置国内高速apt-get更新源
https://www.linuxidc.com/Linux/2017-11/148627.htm Ubuntu 16.04下载软件速度有点慢,因为默认的是从国外下载软件,那就更换到国内比较好的快速更 ...
- ubuntu 16.04 配置ssl
Let's Encrypt 的服务相信很多人都知道了,我个人认为这是最好的免费 SSL 服务.下面内容即使如何在自己的网站上使用 Let's Encrypt 实现 SSL. 前提条件 自己拥有一个域名 ...
- Ubuntu 16.04 配置安卓5.1编译环境
Ubuntu 16.04版本 电脑cpu必须是64位 硬盘分配大约100G的空间 1.ubuntu中更新源 $ sudo apt-get update 2.安装 openjdk-8-jdk $ sud ...
- Ubuntu 16.04配置vncviewer
网上有各种各样的教程,既混乱又复杂.这是提供一个亲自测试可用的配置方案,十分简单,桌面环境选用xfce,Ubuntu版本是16.04. 1 安装 Xfce 和 TightVNC sudo apt in ...
- ubuntu 16.04 配置静态ip 后默认的网卡eno1变成eth0了不能联网的问题解决
我这次是在真实机器上面安装的ubuntu16.04 在配置了静态ip后不懂什么原因默认的eno1网卡变回了eth0网卡之后就不能上网, 同一个网段的其他集群节点也不能ping 通 因为ubuntu16 ...
- Ubuntu 16.04配置SSL免费证书
主要参考地址为:https://blog.csdn.net/setoy/article/details/78441613 本篇主要以Apache这个web服务器来讲解,所以前提必须要安装好apache ...
随机推荐
- vue项目搭建 (一)
vue项目搭建 (一) 由于一直想要有自己的框架,因而一直在尝试搭建各类结构,结合vue官网及git上大神bailicangdu的项目,再看看网上一些意见,及个人思考,总结的一些,不到之处希望大家可以 ...
- 029——VUE中键盘语义修饰符
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 一条命令修改Linux密码
方法一.直接使用passwd命令 /bin/echo newpass|/usr/bin/passwd --stdin username *注:该方式只适用于红帽系操作系统,比如centos,redha ...
- 编译安装pgbouncer-checking for OpenSSL... configure: error: not found
花了一上午时间将pgbouncer的参数通读了一遍,对他有个大致的了解:1.配置分为连接池和pgbouncer两个部分[database]\[pgbouncer ].2.一条记录对应创建一个连接池,连 ...
- JQ上传预览+存数据库
因为之前老师讲的方法有不少BUG 现在经过完善已经修复 之前老是讲的方法是每一张都会被传到后台文件夹里面去 导致在预览过程中如果刷新页面 那么预览的图片不能从后台文件夹中删除 这个方法实现在本地预览 ...
- linux前奏
1:选典型 2:选稍后自定义安装系统 3: 4: :5:弹出清单 二:装系统 下载linux的网址:https://mirrors.aliyun.com/centos/ 1: 2: 3: 2:如何修改 ...
- admin- 源码解析(流程)
首先我们需要了解一个知识点:---单例模式--- 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中 ...
- iPhone开机键坏了如何开机
作死 开机 [苹果手机/iphone开机键坏了怎么开机]
- Mac设置SVN:Cornerstone3
前因 在windows下用Tortoisesvn.可惜Tortoisesvn没有Mac版,只能上知乎寻找适合于 Mac的SVN软件. 经过 找到了一款名为Cornerstone的软件.在App Sto ...
- laravel 中禁用掉注册功能
想让 laravel 做单用户登录,禁止掉注册功能 在 RegisterController 添加以下方法 public function showRegistrationForm() { retur ...