Gianfranco Berardi
2017-03-03 04:34:43 UTC
After almost a week of trying to figure this one out, I'm at a loss.
This is maybe more of an autotools or distro-specific question, but
perhaps someone here has more of a deeper understanding about what is
happening and can help.
I am trying to build my own custom SDL2* libraries. I can configure and
install SDL2 into an arbitrary directory just fine.
When I try to configure SDL2_image, pointing both the --prefix and
--with-sdl-prefix to that same arbitrary directory, it succeeds just
fine on Ubuntu.
But when I try to build on Debian Wheezy (mainly so my custom-built
libraries, which I plan to distribute with my project, will have fewer
dependencies than what Ubuntu pulls in), I am surprised to see the
following output:
$ ./configure --disable-bmp --disable-gif --disable-jpg
--disable-jpg-shared --disable-lbm --disable-pcx --enable-png
--enable-png-shared --disable-pnm --disable-tga --disable-tif
--disable-tif-shared --disable-xcf --disable-xpm --disable-xv
--disable-webp --disable-webp-shared
--prefix=/home/gb/Projects/Tools/CustomLibs/amd64
--with-sdl-prefix=/home/gb/Projects/Tools/CustomLibs/amd64
...
checking for SDL - version >= 2.0.0... no
*** Could not run SDL test program, checking why...
*** The test program compiled, but did not run. This usually means
*** that the run-time linker is not finding SDL or finding the wrong
*** version of SDL. If it is not finding SDL, you'll need to set your
*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point
*** to the installed location Also, make sure you have run ldconfig if that
*** is required on your system
***
*** If you have an old version installed, it is best to remove it, although
*** you may also be able to get things to work by modifying LD_LIBRARY_PATH
configure: error: *** SDL version 2.0.0 not found!
Checking the Debian config.log, it looks like it is able to build
conftest using SDL2, so configure clearly knows how to find it using
sdl2-config, but when it tries to run conftest, the runtime linker
doesn't know where to look to find SDL2.
Debian's config.log:
configure:12352: checking for SDL - version >= 2.0.0
configure:12440: gcc -o conftest -g -O2
-I/home/gb/Projects/Tools/CustomLibs/amd64/include/SDL2 -D_REENTRANT
conftest.c -L/home/gb/Projects/Tools/CustomLibs/amd64/lib -lSDL2 >&5
configure:12440: $? = 0
configure:12440: ./conftest
./conftest: error while loading shared libraries: libSDL2-2.0.so.0:
cannot open shared object file: No such file or directory
configure:12440: $? = 127
configure: program exited with status 127
Debian: $ ls /home/gb/Projects/Tools/CustomLibs/amd64/lib/
cmake libSDL2-2.0.so.0 libSDL2-2.0.so.0.4.1 libSDL2.a libSDL2.la
libSDL2main.a libSDL2.so libSDL2_test.a pkgconfig
On Ubuntu 14.04, I see that config.log has a few key output variables,
such as LIBS, that point to the custom directory, whereas on Debian
Wheezy, those same output variables are missing that information.
Ubuntu's config.log:
configure:12352: checking for SDL - version >= 2.0.0
configure:12440: gcc -o conftest -g -O2
-I/home/gb/Projects/Tools/CustomLibs/amd64/include/SDL2 -D_REENTRANT
conftest.c -L/home/gb/Projects/Tools/CustomLibs/amd64/lib -lSDL2 >&5
configure:12440: $? = 0
configure:12440: ./conftest
configure:12440: $? = 0
configure:12455: result: yes
When I check the diffs between config.log files, I see how different
these seemingly important values are:
< CFLAGS='-I/usr/include/libpng12 -g -O2
-I/home/gb/Projects/Tools/CustomLibs/amd64/include/SDL2 -D_REENTRANT'
---
-D_REENTRANT'
< SDL_LIBS='-L/home/gb/Projects/Tools/CustomLibs/amd64/lib -lSDL2'
---
about setting environment variables myself, but I am curious why running
configure on one system without doing those things results in behavior
that is different from the other system.
Any ideas?
Thanks for your time,
Gianfranco
This is maybe more of an autotools or distro-specific question, but
perhaps someone here has more of a deeper understanding about what is
happening and can help.
I am trying to build my own custom SDL2* libraries. I can configure and
install SDL2 into an arbitrary directory just fine.
When I try to configure SDL2_image, pointing both the --prefix and
--with-sdl-prefix to that same arbitrary directory, it succeeds just
fine on Ubuntu.
But when I try to build on Debian Wheezy (mainly so my custom-built
libraries, which I plan to distribute with my project, will have fewer
dependencies than what Ubuntu pulls in), I am surprised to see the
following output:
$ ./configure --disable-bmp --disable-gif --disable-jpg
--disable-jpg-shared --disable-lbm --disable-pcx --enable-png
--enable-png-shared --disable-pnm --disable-tga --disable-tif
--disable-tif-shared --disable-xcf --disable-xpm --disable-xv
--disable-webp --disable-webp-shared
--prefix=/home/gb/Projects/Tools/CustomLibs/amd64
--with-sdl-prefix=/home/gb/Projects/Tools/CustomLibs/amd64
...
checking for SDL - version >= 2.0.0... no
*** Could not run SDL test program, checking why...
*** The test program compiled, but did not run. This usually means
*** that the run-time linker is not finding SDL or finding the wrong
*** version of SDL. If it is not finding SDL, you'll need to set your
*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point
*** to the installed location Also, make sure you have run ldconfig if that
*** is required on your system
***
*** If you have an old version installed, it is best to remove it, although
*** you may also be able to get things to work by modifying LD_LIBRARY_PATH
configure: error: *** SDL version 2.0.0 not found!
Checking the Debian config.log, it looks like it is able to build
conftest using SDL2, so configure clearly knows how to find it using
sdl2-config, but when it tries to run conftest, the runtime linker
doesn't know where to look to find SDL2.
Debian's config.log:
configure:12352: checking for SDL - version >= 2.0.0
configure:12440: gcc -o conftest -g -O2
-I/home/gb/Projects/Tools/CustomLibs/amd64/include/SDL2 -D_REENTRANT
conftest.c -L/home/gb/Projects/Tools/CustomLibs/amd64/lib -lSDL2 >&5
configure:12440: $? = 0
configure:12440: ./conftest
./conftest: error while loading shared libraries: libSDL2-2.0.so.0:
cannot open shared object file: No such file or directory
configure:12440: $? = 127
configure: program exited with status 127
Debian: $ ls /home/gb/Projects/Tools/CustomLibs/amd64/lib/
cmake libSDL2-2.0.so.0 libSDL2-2.0.so.0.4.1 libSDL2.a libSDL2.la
libSDL2main.a libSDL2.so libSDL2_test.a pkgconfig
On Ubuntu 14.04, I see that config.log has a few key output variables,
such as LIBS, that point to the custom directory, whereas on Debian
Wheezy, those same output variables are missing that information.
Ubuntu's config.log:
configure:12352: checking for SDL - version >= 2.0.0
configure:12440: gcc -o conftest -g -O2
-I/home/gb/Projects/Tools/CustomLibs/amd64/include/SDL2 -D_REENTRANT
conftest.c -L/home/gb/Projects/Tools/CustomLibs/amd64/lib -lSDL2 >&5
configure:12440: $? = 0
configure:12440: ./conftest
configure:12440: $? = 0
configure:12455: result: yes
When I check the diffs between config.log files, I see how different
these seemingly important values are:
< CFLAGS='-I/usr/include/libpng12 -g -O2
-I/home/gb/Projects/Tools/CustomLibs/amd64/include/SDL2 -D_REENTRANT'
---
CFLAGS='-g -O2'
< SDL_CFLAGS='-I/home/gb/Projects/Tools/CustomLibs/amd64/include/SDL2-D_REENTRANT'
< SDL_LIBS='-L/home/gb/Projects/Tools/CustomLibs/amd64/lib -lSDL2'
---
SDL_CFLAGS=''
SDL_LIBS=''
I could always using LD_LIBRARY_PATH or do what the README.txt saysSDL_LIBS=''
about setting environment variables myself, but I am curious why running
configure on one system without doing those things results in behavior
that is different from the other system.
Any ideas?
Thanks for your time,
Gianfranco
--
Creating entertainment that encourages curiosity, supports creativity,
and promotes continuous learning: http://www.GBGames.com/
Follow me on Twitter: http://www.twitter.com/GBGames
Creating entertainment that encourages curiosity, supports creativity,
and promotes continuous learning: http://www.GBGames.com/
Follow me on Twitter: http://www.twitter.com/GBGames