1. 程式人生 > >pc機wayland環境編譯glfw視窗管理器

pc機wayland環境編譯glfw視窗管理器

找了很多Linux發行版,都沒有明確標註是否採用了wayland作為顯示伺服器,嘗試了ubuntu17.10,suse,centos7,fedora28,終於在fedora28上找到了原生使用wayland的發行版

ubuntu17.10也採用wayland作為原生圖形伺服器,但是沒兩下就宕機,變磚了

centos7連視窗都沒有,完全自己搭建,編譯了無數的原始碼,最終因為執行weston提示版本不適配而無法進行

查到fedora25打算預設採用wayland作為顯示伺服器,於是開啟之前用於學習systemd的fedora28,用如下命令可確認

xrandr

echo $XDG_SESSION_TYPE

loginctl

確認了顯示伺服器是wayland

於是在fedora28上部署wayland開發環境,將glfw視窗管理器編譯出來 大概下載瞭如下工具:

yum install autoconf  automake make gcc gcc-c++  libtool bison  flex wget  bzip2 pkgconfig
yum install libffi-devel.x86_64 expat-devel.x86_64
yum install systemd-devel.x86_64
yum install wqy-microhei-fonts.noarch wqy-zenhei-fonts.noarch   zlib-devel.x86_64
yum install glib2-devel.x86_64
yum install libpng-devel.x86_64  pixman-devel.x86_64
yum install libxkbcommon-devel.x86_64  libjpeg-turbo-devel.x86_64 pam-devel.x86_64
yum install cmake-gui

安裝cmake,有多種方法,安裝編譯完後加個連線才好用 ln -s /usr/cmake-3.12.2-Linux-x86_64/bin/* /usr/bin/

首次編譯會出現如下幾個環境配置問題:

  • 在cmake-gui上匯入glfw-3.2.1,在Makelist.txt上記得開啟wayland,否則預設是x11,會提示沒有x11的開發庫; 匯入後點擊configure,會產生一個ecm錯誤,這是cmake的問題,安裝有一個擴充套件包即可
    git clone git://anongit.kde.org/extra-cmake-modules.git
    cd extra-cmake-modules/
    cmake .
    make
  • 在cmake-gui上刪除當前配置Delete Cache,重新configure,有一個新的錯誤產生,missing WAYLAND_LIBRARY**,安裝wayland開發庫
    yum install wayland-devel
  • 在cmake-gui上刪除當前配置Delete Cache,重新configure,又有一個新的錯誤產生,missing WAYLAND_PROTOCOLS,安裝wayland_protocols開發庫,可從該網站下載,http://rpm.pbone.net/index.php3?stat=3&search=wayland-protocols-devel&srodzaj=3
    rpm -ivh wayland-protocols-devel-1.2-13.1.noarch.rpm
  • 在cmake-gui上刪除當前配置Delete Cache,重新configure,此時configure和generate成功執行,在build目錄生成馬可肥了,終端進入build目錄執行make,此時又產生一個錯誤,找不到標頭檔案<GL/gl.h>****等,此時安裝OpenGL開發庫
    yum install -y SDL-devel mesa-libGL-devel

到此,glfw-3.2.1順利編譯,examples檔案可完美執行