OpenGL qt&glad&glfw環(huán)境搭建

Linux 配置OpenGL環(huán)境

安裝QT

sudo apt-get install qt5-default qtcreator 

或者在應用管家中查找qt進行安裝也可以.

安裝glfw

1.安裝cmake

sudo apt-get build-dep glfw
sudo apt-get install cmake xorg-dev libglu1-mesa-dev

安裝中報了個無法解析域名archive.ubuntukylin.com 的錯誤,可以查看下自己的DNS Server:

cat /etc/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "systemd-resolve --status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 127.0.0.53
options edns0
search DHCP HOST

如果你的和上邊一樣投放,只有127.0.0.53這個地址愕宋,那可以通過下面的方式修改脱羡,再進行cmake的安裝:

1. sudo vim /etc/resolv.conf # 添加如下內容
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 127.0.0.1
2. 輸入Esc猜揪,:wq,保存并退出
3. sudo /etc/init.d/networking restart

2.在 https://www.glfw.org/ 下載GLFW壓縮包到本地檩禾,找個文件集命名為GLFW斜做,然后將壓縮包內文件提取到該文件夾中,在該文件夾內打開終端窗窗口谈为,執(zhí)行

makedir build
cd build
cmake ../
make
sudo make install

安裝glad

glad與glew作用相同旅挤,可以將其看作是glew的升級版

在下載頁面選擇版本和模式,版本選擇最新伞鲫,profile可以選擇核心模式粘茄,還是Compatibility,如果不需要對老版本進行支持秕脓,建議選擇核心模式.選好后點擊generate, 跳轉到下載頁面柒瓣,點擊zip文件鏈接進行下載:

img

下載后,解壓到本地吠架,將include中的文件拷貝到/usr/local/include當中:

cd include
sudo mv * /usr/local/include

配置QT工程設置

考慮到跨平臺芙贫,而且cmake使用較多,所以我們新建qt工程的時候使用的是camke作為工程配置的, 你可以根據(jù)需要傍药,在最后的target_link_libraries中添加所需要的庫即可

cmake_minimum_required(VERSION 2.8.12)

project(GLConsole)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(SOURCE_FILES main.cpp glad.c) # 源文件

find_package(Qt5Core)

add_executable(${PROJECT_NAME} ${SOURCE_FILES}) 

# 在這里添加lib庫
target_link_libraries(${PROJECT_NAME} glfw3 GL m Xrandr Xi X11 Xxf86vm pthread dl Xinerama Xcursor)

配置好以后磺平,我們就寫一個Hello OpenGL吧魂仍,具體代碼如下:

#include <iostream>

#include <glad/glad.h>
#include <GLFW/glfw3.h>

#define GOUT std::cout
#define GENDL std::endl

enum GError{
    GERROR_WINDOW_FAIL=-1,
    GERROR_GLFW_FAIL = -2,
    GERROR_GLAD_FAIL = -3
};

void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{
    glViewport(0, 0, width, height);
}

int main()
{
    // system("pause");
    // 初始化glfw
    glfwInit();
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR,4);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR,5);
    glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE);
    glfwWindowHint(GLFW_RESIZABLE,GL_FALSE);

    // Create GLWindow
    GLFWwindow* window = glfwCreateWindow(800, 600,"Hello OpenGL", nullptr, nullptr);
    if(nullptr == window)
    {
        GOUT<<"Failed to create OpenGL window."<<GENDL;
        glfwTerminate(); // Release GL Resources.
        return GERROR_WINDOW_FAIL;
    }
    glfwMakeContextCurrent(window);


    // Initialize GLAD
    if(!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
    {
        std::cout << "Failed to initialize GLAD" << std::endl;
        return -1;
    }

    // 此函數(shù)設置窗口的維度(Dimension)
    glViewport(0, 0, 800, 600);
    glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);

    while(!glfwWindowShouldClose(window))
    {
        glfwSwapBuffers(window);
        glfwPollEvents();
    }

    std::cout<<"hello open gl"<<std::endl;

    return 0;
}

參考文章

Linux下OpenGL環(huán)境搭建(glfw)

Ubuntu18.04 sudo apt update無法解析域名的解決方案

使用GLFW與GLAD創(chuàng)建窗口并畫出三角形

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市拣挪,隨后出現(xiàn)的幾起案子蓄诽,更是在濱河造成了極大的恐慌,老刑警劉巖媒吗,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仑氛,死亡現(xiàn)場離奇詭異,居然都是意外死亡闸英,警方通過查閱死者的電腦和手機锯岖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甫何,“玉大人出吹,你說我怎么就攤上這事≌尬梗” “怎么了捶牢?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長巍耗。 經常有香客問我秋麸,道長,這世上最難降的妖魔是什么炬太? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任灸蟆,我火速辦了婚禮,結果婚禮上亲族,老公的妹妹穿的比我還像新娘炒考。我一直安慰自己,他們只是感情好霎迫,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布斋枢。 她就那樣靜靜地躺著,像睡著了一般知给。 火紅的嫁衣襯著肌膚如雪瓤帚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天炼鞠,我揣著相機與錄音缘滥,去河邊找鬼轰胁。 笑死谒主,一個胖子當著我的面吹牛,可吹牛的內容都是我干的赃阀。 我是一名探鬼主播霎肯,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼擎颖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了观游?” 一聲冷哼從身側響起搂捧,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎懂缕,沒想到半個月后允跑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡搪柑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年聋丝,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片工碾。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡弱睦,死狀恐怖,靈堂內的尸體忽然破棺而出渊额,到底是詐尸還是另有隱情况木,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布旬迹,位于F島的核電站火惊,受9級特大地震影響,放射性物質發(fā)生泄漏奔垦。R本人自食惡果不足惜矗晃,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宴倍。 院中可真熱鬧张症,春花似錦、人聲如沸鸵贬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽阔逼。三九已至兆衅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間嗜浮,已是汗流浹背羡亩。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留危融,地道東北人畏铆。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像吉殃,于是被迫代替她去往敵國和親辞居。 傳聞我的和親對象是個殘疾皇子楷怒,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355