BOSSoNe0013 / track-o-bot

The friendly Hearthstone Tracker (Linux port)
https://trackobot.com
GNU Lesser General Public License v2.1
39 stars 6 forks source link

Can't compile on Ubuntu 16.10 #86

Closed terzag closed 7 years ago

terzag commented 7 years ago

I've compiled Track-o-Bot in the past but had to reinstall my OS recently, so I'm restarting from scratch. I've installed the packages listed on the main page but when I try to run qmake, I get the following error:

Project ERROR: xcb development package not found

Any idea about what I'm missing? Have the required libs been updated recently?

BOSSoNe0013 commented 7 years ago

It should be libx11-xcb-dev. I think this package was previously installed with X11 development package.

BOSSoNe0013 commented 7 years ago

libxcb1-dev is listed in the README, are you sure that this package is installed on your system ?

terzag commented 7 years ago

Yes, both libx11-xcb-dev and libxcb1-dev are installed.

BOSSoNe0013 commented 7 years ago

This is the libs linked to the binary, hope this helps ldd /usr/bin/Track-o-Bot | grep xcb libxcb-icccm.so.4 => /usr/lib/x86_64-linux-gnu/libxcb-icccm.so.4 (0x00007f992d011000) libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f992cdef000)

So libxcb-icccm4-dev is also needed

terzag commented 7 years ago

It's installed too, I've installed all the dependancies stated in the readme. I have the following libxcb* in /usr/lib/x86_64-linux-gnu:

libxcb.a
libxcb-composite.so.0
libxcb-composite.so.0.0.0
libxcb-dri2.a
libxcb-dri2.so
libxcb-dri2.so.0
libxcb-dri2.so.0.0.0
libxcb-dri3.a
libxcb-dri3.so
libxcb-dri3.so.0
libxcb-dri3.so.0.0.0
libxcb-glx.a
libxcb-glx.so
libxcb-glx.so.0
libxcb-glx.so.0.0.0
libxcb-icccm.a
libxcb-icccm.so
libxcb-icccm.so.4
libxcb-icccm.so.4.0.0
libxcb-image.so.0
libxcb-image.so.0.0.0
libxcb-keysyms.so.1
libxcb-keysyms.so.1.0.0
libxcb-present.a
libxcb-present.so
libxcb-present.so.0
libxcb-present.so.0.0.0
libxcb-randr.a
libxcb-randr.so
libxcb-randr.so.0
libxcb-randr.so.0.1.0
libxcb-render.a
libxcb-render.so
libxcb-render.so.0
libxcb-render.so.0.0.0
libxcb-render-util.so.0
libxcb-render-util.so.0.0.0
libxcb-shape.a
libxcb-shape.so
libxcb-shape.so.0
libxcb-shape.so.0.0.0
libxcb-shm.so.0
libxcb-shm.so.0.0.0
libxcb.so
libxcb.so.1
libxcb.so.1.1.0
libxcb-sync.a
libxcb-sync.so
libxcb-sync.so.1
libxcb-sync.so.1.0.0
libxcb-util.so.1
libxcb-util.so.1.0.0
libxcb-xfixes.a
libxcb-xfixes.so
libxcb-xfixes.so.0
libxcb-xfixes.so.0.0.0
libxcb-xinerama.so.0
libxcb-xinerama.so.0.0.0
libxcb-xkb.so.1
libxcb-xkb.so.1.0.0
libxcb-xv.so.0
libxcb-xv.so.0.0.0
BOSSoNe0013 commented 7 years ago

here's the complete list of linked libs: ldd /usr/bin/Track-o-Bot linux-vdso.so.1 => (0x00007ffd65162000) libxcb-icccm.so.4 => /usr/lib/x86_64-linux-gnu/libxcb-icccm.so.4 (0x00007fd879819000) libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fd8795f7000) libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007fd878f6f000) libQt5X11Extras.so.5 => /usr/lib/x86_64-linux-gnu/libQt5X11Extras.so.5 (0x00007fd878f6a000) libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007fd8789de000) libQt5Network.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Network.so.5 (0x00007fd878866000) libQt5Xml.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Xml.so.5 (0x00007fd87882a000) libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007fd878352000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fd877fca000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd877cc1000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fd877aaa000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd8776e1000) libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fd8774dd000) libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fd8772d7000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd8770b9000) libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007fd876e66000) libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fd876b52000) libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fd876817000) libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007fd8765e5000) libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007fd876365000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fd87614b000) libGL.so.1 => /usr/lib/nvidia-378/libGL.so.1 (0x00007fd875ebb000) libproxy.so.1 => /usr/lib/x86_64-linux-gnu/libproxy.so.1 (0x00007fd875c9a000) libicui18n.so.57 => /usr/lib/x86_64-linux-gnu/libicui18n.so.57 (0x00007fd87581e000) libicuuc.so.57 => /usr/lib/x86_64-linux-gnu/libicuuc.so.57 (0x00007fd875476000) libpcre16.so.3 => /usr/lib/x86_64-linux-gnu/libpcre16.so.3 (0x00007fd87520d000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd875009000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fd874e01000) /lib64/ld-linux-x86-64.so.2 (0x000056223bc82000) libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007fd874bf7000) libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fd874984000) libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fd8746d7000) libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007fd8744b2000) libGLX.so.0 => /usr/lib/nvidia-378/libGLX.so.0 (0x00007fd874282000) libGLdispatch.so.0 => /usr/lib/nvidia-378/libGLdispatch.so.0 (0x00007fd873f99000) libicudata.so.57 => /usr/lib/x86_64-linux-gnu/libicudata.so.57 (0x00007fd87251a000) libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fd872308000)

and all xcb libs installed on my system (Ubuntu 16.10 x64)

ls /usr/lib/x86_64-linux-gnu/ | grep xcb libX11-xcb.a libX11-xcb.so libX11-xcb.so.1 libX11-xcb.so.1.0.0 libxcb.a libxcb-composite.so.0 libxcb-composite.so.0.0.0 libxcb-cursor.so.0 libxcb-cursor.so.0.0.0 libxcb-damage.so.0 libxcb-damage.so.0.0.0 libxcb-dpms.so.0 libxcb-dpms.so.0.0.0 libxcb-dri2.a libxcb-dri2.so libxcb-dri2.so.0 libxcb-dri2.so.0.0.0 libxcb-dri3.a libxcb-dri3.so libxcb-dri3.so.0 libxcb-dri3.so.0.0.0 libxcb-glx.a libxcb-glx.so libxcb-glx.so.0 libxcb-glx.so.0.0.0 libxcb-icccm.a libxcb-icccm.so libxcb-icccm.so.4 libxcb-icccm.so.4.0.0 libxcb-image.so.0 libxcb-image.so.0.0.0 libxcb-keysyms.so.1 libxcb-keysyms.so.1.0.0 libxcb-present.a libxcb-present.so libxcb-present.so.0 libxcb-present.so.0.0.0 libxcb-randr.a libxcb-randr.so libxcb-randr.so.0 libxcb-randr.so.0.1.0 libxcb-record.so.0 libxcb-record.so.0.0.0 libxcb-render.a libxcb-render.so libxcb-render.so.0 libxcb-render.so.0.0.0 libxcb-render-util.so.0 libxcb-render-util.so.0.0.0 libxcb-shape.a libxcb-shape.so libxcb-shape.so.0 libxcb-shape.so.0.0.0 libxcb-shm.a libxcb-shm.so libxcb-shm.so.0 libxcb-shm.so.0.0.0 libxcb.so libxcb.so.1 libxcb.so.1.1.0 libxcb-sync.a libxcb-sync.so libxcb-sync.so.1 libxcb-sync.so.1.0.0 libxcb-util.so.0 libxcb-util.so.0.0.0 libxcb-util.so.1 libxcb-util.so.1.0.0 libxcb-xf86dri.so.0 libxcb-xf86dri.so.0.0.0 libxcb-xfixes.a libxcb-xfixes.so libxcb-xfixes.so.0 libxcb-xfixes.so.0.0.0 libxcb-xinerama.so.0 libxcb-xinerama.so.0.0.0 libxcb-xkb.so.1 libxcb-xkb.so.1.0.0 libxcb-xtest.so.0 libxcb-xtest.so.0.0.0 libxcb-xv.so.0 libxcb-xv.so.0.0.0

terzag commented 7 years ago

I have basically the same libs as in the ldd (minus the nVidia ones but I have and AMD GPU). I've compared the XCB packages with yours, tried to installed the ones I didn't have but no change. :/

EDIT: I just tried to uninstall all -dev packages on my system and reinstall only the ones needed by Track-o-Bot but no luck.

I'm wondering something: the readme says that I need dev packages for Mesa. I'm using a newer Mesa version from a PPA. Is it possible that it lacks the corresponding dev packages and so the ones from the repos are not at the same version and it triggers the XCB error? or is it completely unrelated?

BOSSoNe0013 commented 7 years ago

May be as libGL.so is linked against libxcb.so: ldd /usr/lib/x86_64-linux-gnu/mesa/libGL.so linux-vdso.so.1 => (0x00007fffabb1a000) libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f62e80c2000) libxcb-dri3.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0 (0x00007f62e7ebf000) libxcb-present.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-present.so.0 (0x00007f62e7cbc000) libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007f62e7ab5000) libxshmfence.so.1 => /usr/lib/x86_64-linux-gnu/libxshmfence.so.1 (0x00007f62e78b2000) libglapi.so.0 => /usr/lib/x86_64-linux-gnu/libglapi.so.0 (0x00007f62e7682000) libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f62e7470000) libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f62e726d000) libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f62e7067000) libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f62e6e65000) libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f62e6b2c000) libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007f62e6911000) libxcb-dri2.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0 (0x00007f62e670c000) libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f62e64ea000) libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007f62e62e4000) libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007f62e60d5000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f62e5dcc000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f62e5bac000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f62e59a8000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f62e55e1000) libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f62e53dd000) libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f62e51d7000) /lib64/ld-linux-x86-64.so.2 (0x00005564ee451000)

terzag commented 7 years ago

I have exactly the same:

linux-vdso.so.1 =>  (0x00007ffc6adc5000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f48a902d000)
libxcb-dri3.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0 (0x00007f48a8e2a000)
libxcb-present.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-present.so.0 (0x00007f48a8c27000)
libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007f48a8a20000)
libxshmfence.so.1 => /usr/lib/x86_64-linux-gnu/libxshmfence.so.1 (0x00007f48a881d000)
libglapi.so.0 => /usr/lib/x86_64-linux-gnu/libglapi.so.0 (0x00007f48a85ec000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f48a83da000)
libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f48a81d7000)
libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f48a7fd1000)
libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f48a7dcf000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f48a7a96000)
libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007f48a787b000)
libxcb-dri2.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0 (0x00007f48a7676000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f48a7454000)
libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007f48a724e000)
libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007f48a703f000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f48a6d36000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f48a6b16000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f48a6912000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f48a654b000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f48a6347000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f48a6141000)
/lib64/ld-linux-x86-64.so.2 (0x000055755127c000)
angrylinuxuser commented 7 years ago

Stupid question. is pkg-config installed?

terzag commented 7 years ago

It wasn't. Now that it is, the compilation works fine!

What is it exactly? Is it normal that it isn't installed by build-essentials?

angrylinuxuser commented 7 years ago

It should be by default i think when you install build-essentials (at least it is what i thought)

From manpage: pkg-config - Return metainformation about installed libraries.

Its needed to find out where are your libs installed so it could compile properly.

@BOSSoNe0013 You should add this to dependencies in readme to avoid this issue in the future.

BOSSoNe0013 commented 7 years ago

Well done @angrylinuxuser, i'll add it to the readme. Thanks