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)分别如上图

我用了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命令模式下直接正则替换方便。

时间: 2024-08-05 02:54:04

Ubuntu 16.04配置OpenGL教程的相关文章

Ubuntu 16.04——配置Nginx及Https服务

安装Cerbot sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install python-certbot-nginx 使用Cerbot中的Nginx插件(自动版,可能会不行) sudo certbot --nginx 此命令将自动获取证书并且Certb

Ubuntu 16.04配置OpenCV 3.1.0

我们都知道,OpenCV是基于C++的开源计算机视觉库,但是从2.4.4版本开始提供了Java绑定,也就是说,我们也可以使用Java来开发基于OpenCV的计算机视觉应用.目前,最新的版本是3.1.0,在本文中将会介绍如何中Ubuntu 16.04上搭建OpenCV for Java的开发环境,假设目前使用的是刚刚重装的Linux操作系统. ipp_file=../ippicv_linux_20151201.tgz && ipp_hash=$(md5sum $ipp_file | cut

Ubuntu 16.04配置SSL免费证书

主要参考地址为:https://blog.csdn.net/setoy/article/details/78441613 本篇主要以Apache这个web服务器来讲解,所以前提必须要安装好apache. 关于安装Apache,对于Ubuntu来说,一行命令行就能搞定. sudo apt-get install apache2 当然了,如果有对lnmp或者lanmp环境搭建感兴趣的可以参考我的这篇博文:Ubuntu16.04之开发环境构建 虽说该文排版有待改善,但是内容还是很实用的. 1.开启SS

Ubuntu 16.04配置JDK

此篇为http://www.cnblogs.com/EasonJim/p/7139275.html的分支页. 一.JRE和JDK JRE(Java Runtime Environment)是运行一个基于Java语言应用程序的所正常需要的环境. JDK代表Java开发工具包,做一些有关Java的开发所需要的. 二.OpenJDK和Oracle JDK(JDK) OpenJDK是Java开发工具包的开源实现. Oracle JDK是Java开发工具包的官方Oracle版本. 尽管OpenJDK已经足

Ubuntu 16.04配置Java开发环境

一.安装jdk,配置java环境变量 1.下载 jdk,当前的版本是 jdk-8u101.选择适合自己系统的版本进行下载,下载好之后放在 Download 目录下 2.然后使用 Ctrl + Alt + t 打开终端进入 Download 目录下,使用 tar -xf jdk-8u101-linux-x64.tar.gz 命令进行解压 3.将解压得到的jdk1.8.0_101文件夹移动到/opt/Java文件夹:sudo mv jdk1.8.0_101/ /opt/Java 4.配置java环境

ubuntu 16.04 配置sshd

1)后台安装ssh server sudo apt-get install openssh-server 2)启动sshd sudo service ssh start 3)设置开机自动启动 sudo sysv-rc-conf 选择ssh在level 2,3,4,5上都使能.如下图 4)配置root也可以登陆. sudo vim /etc/ssh/sshd_config 讲其中的[PermitRootLogin without-password]修改为[PermitRootLogin yes].

ubuntu 16.04 配置Rime输入法(中州韵)

安装 sudo apt install fcitx-rime 添加输入法 我是直接在系统设置里添加 安装小鹤双拼 sudo apt-get install librime-data-double-pinyin 修改输入法配置 ~/.config/rime/default.custom.yaml customization: distribution_code_name: Weasel distribution_version: 0.9.30 generator: "Rime::SwitcherS

Ubuntu 16.04 配置网卡

https://blog.csdn.net/u010544187/article/details/77879359/ https://wiki.debian.org/NetworkConfiguration 配置IP地址自动获取 原文地址:https://www.cnblogs.com/ihibin/p/9383118.html

Ubuntu 16.04配置VNC进行远程桌面连接

说明:其实要装VNC还不如装个Teamview来的快一些,并且全平台支持. 1.安装 $sudo apt-get install xfce4 $sudo apt-get install vnc4server $sudo apt-get install xrdp   2.启动vncserver,初始化 vncserver #启动vncserver,第一次需要输入设置登录密码 如果密码忘记了,可以进去~/.vnc/目录删除password文件即可. 3.修改配置文件xstartup sudo ged