Eu acredito que estou no inferno de dependência.
Estou tentando fazer o GLFW funcionar. Eu estou no Linux Mint com canela. Quando tento compilar o GLFW usando estas etapas , recebo a seguinte saída:
$ cmake -G "Unix Makefiles"
-- Could NOT find Vulkan (missing: VULKAN_LIBRARY VULKAN_INCLUDE_DIR)
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Using X11 for window creation
-- Configuring done
-- Generating done
-- Build files have been written to: ~/Downloads/glfw
$ make
[ 20%] Building C object src/CMakeFiles/glfw.dir/context.c.o
[ 20%] Building C object src/CMakeFiles/glfw.dir/init.c.o
[ 20%] Building C object src/CMakeFiles/glfw.dir/input.c.o
[ 20%] Building C object src/CMakeFiles/glfw.dir/monitor.c.o
[ 20%] Building C object src/CMakeFiles/glfw.dir/vulkan.c.o
[ 20%] Building C object src/CMakeFiles/glfw.dir/window.c.o
[ 20%] Building C object src/CMakeFiles/glfw.dir/x11_init.c.o
[ 20%] Building C object src/CMakeFiles/glfw.dir/x11_monitor.c.o
[ 20%] Building C object src/CMakeFiles/glfw.dir/x11_window.c.o
[ 20%] Building C object src/CMakeFiles/glfw.dir/xkb_unicode.c.o
[ 20%] Building C object src/CMakeFiles/glfw.dir/linux_joystick.c.o
[ 20%] Building C object src/CMakeFiles/glfw.dir/posix_time.c.o
[ 20%] Building C object src/CMakeFiles/glfw.dir/posix_tls.c.o
[ 20%] Building C object src/CMakeFiles/glfw.dir/glx_context.c.o
[ 20%] Building C object src/CMakeFiles/glfw.dir/egl_context.c.o
Linking C shared library libglfw.so
[ 20%] Built target glfw
[ 20%] Building C object examples/CMakeFiles/boing.dir/boing.c.o
In file included from ~/Downloads/glfw/examples/boing.c:40:0:
~/Downloads/glfw/include/GLFW/glfw3.h:168:21: fatal error: GL/gl.h: No such file or directory
#include <GL/gl.h>
^
compilation terminated.
make[2]: *** [examples/CMakeFiles/boing.dir/boing.c.o] Error 1
make[1]: *** [examples/CMakeFiles/boing.dir/all] Error 2
make: *** [all] Error 2
De acordo com isto , este tem algo a ver com mesa-common-dev
.
Quando tento instalar o mesa-common-dev
, recebo esta saída:
$ sudo apt-get install mesa-common-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help resolve the situation:
The following packages have unmet dependencies:
mesa-common-dev : Depends: libdrm-dev (>= 2.4.52) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Aparentemente, isso tem algo a ver com esse bug no Linux Mint. De acordo com esta resposta , a solução é continuar tentando instalar dependências até você sair e encontrar a que está faltando.
Tentei isso. Aqui está o grande comando final e sua saída:
$ sudo apt-get install build-essential libevent-pthreads-2.0.5 doxygen xorg-dev libglu1-mesa-dev xserver-xorg-dev mesa-common-dev libdrm-dev libdrm2="2.4.64-1~ubuntu14.04.1" libdrm-intel1="2.4.64-1~ubuntu14.04.1" libdrm-nouveau2="2.4.64-1~ubuntu14.04.1" libdrm-radeon1="2.4.64-1~ubuntu14.04.1" libgbm1 libdrm2:i386="2.4.64-1~ubuntu14.04.1"
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libevent-pthreads-2.0-5' for regex 'libevent-pthreads-2.0.5'
build-essential is already the newest version.
libgbm1 is already the newest version.
The following packages were automatically installed and are no longer required:
cheese-common gnome-video-effects
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
libdmx-dev libdrm-amdgpu1 libegl1-mesa libevent-core-2.0-5 libfontenc-dev
libfs-dev libgl1-mesa-dev libgl1-mesa-dri libgl1-mesa-glx
libgl1-mesa-glx:i386 libglapi-mesa libglapi-mesa:i386 libgles2-mesa
libllvm3.4 libmirclient-dev libmirclient7 libmirclientplatform-mesa
libmirprotobuf-dev libmirprotobuf0 libpciaccess-dev libwayland-egl1-mesa
libx11-xcb-dev libxaw7-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-dev
libxcb-present-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev
libxcb-xfixes0-dev libxfont-dev libxkbfile-dev libxmu-dev libxmu-headers
libxmuu-dev libxres-dev libxshmfence-dev libxss-dev libxtst-dev libxv-dev
libxvmc-dev libxxf86dga-dev libxxf86vm-dev mircommon-dev
x11proto-bigreqs-dev x11proto-dmx-dev x11proto-dri2-dev x11proto-dri3-dev
x11proto-fonts-dev x11proto-gl-dev x11proto-present-dev x11proto-record-dev
x11proto-resource-dev x11proto-scrnsaver-dev x11proto-video-dev
x11proto-xcmisc-dev x11proto-xf86bigfont-dev x11proto-xf86dga-dev
x11proto-xf86dri-dev x11proto-xf86vidmode-dev xserver-xorg xserver-xorg-core
xserver-xorg-input-evdev
Suggested packages:
doxygen-latex doxygen-doc doxygen-gui graphviz libglide3 libxaw-doc
The following packages will be REMOVED:
caribou cheese cinnamon gir1.2-clutter-1.0 gir1.2-clutter-gst-2.0
gir1.2-cogl-1.0 gir1.2-coglpango-1.0 gir1.2-gtkclutter-1.0 gir1.2-muffin-3.0
gir1.2-totem-1.0 gstreamer1.0-clutter ia32-libs kubuntu-desktop
libcheese-gtk23 libcheese7 libclutter-1.0-0 libclutter-gst-2.0-0
libclutter-gtk-1.0-0 libcogl-pango15 libcogl15 libdrm-intel1:i386
libdrm-nouveau2:i386 libdrm-radeon1:i386 libegl1-mesa-lts-vivid
libgbm1-lts-vivid libgl1-mesa-dri-lts-vivid libgl1-mesa-dri-lts-vivid:i386
libgl1-mesa-glx-lts-vivid libgl1-mesa-glx-lts-vivid:i386
libglapi-mesa-lts-vivid libglapi-mesa-lts-vivid:i386 libgles1-mesa-lts-vivid
libgles2-mesa-lts-vivid libmuffin0 libtotem0 libwayland-egl1-mesa-lts-vivid
libxatracker2-lts-vivid mint-meta-cinnamon mint-meta-codecs nemo-preview
totem totem-mozilla totem-plugins totem-plugins-extra virtualbox-guest-x11
xorg xserver-xorg-core-lts-vivid xserver-xorg-input-all-lts-vivid
xserver-xorg-input-evdev-lts-vivid xserver-xorg-input-mouse-lts-vivid
xserver-xorg-input-synaptics-lts-vivid xserver-xorg-input-vmmouse-lts-vivid
xserver-xorg-input-wacom-lts-vivid xserver-xorg-lts-vivid
xserver-xorg-video-all-lts-vivid xserver-xorg-video-ati-lts-vivid
xserver-xorg-video-cirrus-lts-vivid xserver-xorg-video-fbdev-lts-vivid
xserver-xorg-video-intel-lts-vivid xserver-xorg-video-mach64-lts-vivid
xserver-xorg-video-mga-lts-vivid xserver-xorg-video-neomagic-lts-vivid
xserver-xorg-video-nouveau-lts-vivid xserver-xorg-video-openchrome-lts-vivid
xserver-xorg-video-r128-lts-vivid xserver-xorg-video-radeon-lts-vivid
xserver-xorg-video-savage-lts-vivid
xserver-xorg-video-siliconmotion-lts-vivid
xserver-xorg-video-sisusb-lts-vivid xserver-xorg-video-tdfx-lts-vivid
xserver-xorg-video-trident-lts-vivid xserver-xorg-video-vesa-lts-vivid
xserver-xorg-video-vmware-lts-vivid
The following NEW packages will be installed:
doxygen libdmx-dev libdrm-amdgpu1 libdrm-dev libegl1-mesa
libevent-core-2.0-5 libevent-pthreads-2.0-5 libfontenc-dev libfs-dev
libgl1-mesa-dev libgl1-mesa-dri libgl1-mesa-glx libgl1-mesa-glx:i386
libglapi-mesa libglapi-mesa:i386 libgles2-mesa libglu1-mesa-dev libllvm3.4
libmirclient-dev libmirclient7 libmirclientplatform-mesa libmirprotobuf-dev
libmirprotobuf0 libpciaccess-dev libwayland-egl1-mesa libx11-xcb-dev
libxaw7-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-dev
libxcb-present-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev
libxcb-xfixes0-dev libxfont-dev libxkbfile-dev libxmu-dev libxmu-headers
libxmuu-dev libxres-dev libxshmfence-dev libxss-dev libxtst-dev libxv-dev
libxvmc-dev libxxf86dga-dev libxxf86vm-dev mesa-common-dev mircommon-dev
x11proto-bigreqs-dev x11proto-dmx-dev x11proto-dri2-dev x11proto-dri3-dev
x11proto-fonts-dev x11proto-gl-dev x11proto-present-dev x11proto-record-dev
x11proto-resource-dev x11proto-scrnsaver-dev x11proto-video-dev
x11proto-xcmisc-dev x11proto-xf86bigfont-dev x11proto-xf86dga-dev
x11proto-xf86dri-dev x11proto-xf86vidmode-dev xorg-dev xserver-xorg
xserver-xorg-core xserver-xorg-dev xserver-xorg-input-evdev
The following packages will be DOWNGRADED:
libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libdrm2:i386
0 upgraded, 71 newly installed, 5 downgraded, 73 to remove and 1 not upgraded.
Need to get 18.2 MB of archives.
After this operation, 25.9 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Isso parece que vai desinstalar a canela e destruir completamente o meu sistema. O que estou perdendo? Como posso instalar o GLFW no Linux Mint 17.3?
Eu também investiguei mais e tentei instalar o xserver-xorg-core-dev-Its-vivid
, mas ele acabou de dizer que o pacote quebrou as dependências e não me deixou instalar.
As informações do meu sistema:
Linux my-computer-name 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux