Why are apps looking for libraries at /usr/X11R6/lib64?

Issues related to applications and software problems and general support
Post Reply
afernandezody
Posts: 50
Joined: 2019/06/25 13:10:33

Why are apps looking for libraries at /usr/X11R6/lib64?

Post by afernandezody » 2021/04/19 13:39:40

Hello,
In the process of building several apps from source, the Makefile tries to link libraries from the subdirectory /usr/X11R6/lib64, which doesn't exist. Because this has happened with apps from different developers, I was wondering if anyone knows which command or what is triggering this behavior. The problem seems to be related to the X Window system and maybe even to OpenGL, but I cannot put my finger on what exactly is going on. One app relatively easy to install and that exhibits this pattern is https://github.com/nigels-com/glew.
Thanks.

User avatar
jlehtone
Posts: 4523
Joined: 2007/12/11 08:17:33
Location: Finland

Re: Why are apps looking for libraries at /usr/X11R6/lib64?

Post by jlehtone » 2021/04/19 14:17:06

Your source code has static configuration.

GLEW is a bad example, because it is already in the repo:

Code: Select all

$ sudo dnf --enablerepo=powertools list \*glew\*
Last metadata expiration check: 0:00:17 ago on Mon 19 Apr 2021 04:49:04 PM EEST.
Available Packages
glew-devel.i686                       2.0.0-6.el8                     powertools
glew-devel.x86_64                     2.0.0-6.el8                     powertools
libGLEW.i686                          2.0.0-6.el8                     powertools
libGLEW.x86_64                        2.0.0-6.el8                     powertools
No point in source install for that one.


That page also tells to install "libXmu-devel libXi-devel libGL-devel". Neither RHEL 7 nor 8 seem to have "libGL-devel" (but both have mesa-libGL-devel).

They say: "GNU make is the primary build system for GLEW, historically."
They a have pre-crafted Makefile. If they list the package dependencies wrong, then is the Makefile any better?
The library layout has changed, but the Makefile has not been updated.

"cmake build is mostly contributer maintained." The CMake determines dynamically the path to libraries and creates appropriate Makefile.
If application uses GNU Build Tools, rather than CMake, then it has the configure script for Makefile generation.
GNU Build Tools and CMake are not even the only solutions for that.

Post Reply