[mapserver-users] Problem with libjpeg
Andy Colson
andy at squeakycode.net
Mon Oct 19 07:18:34 PDT 2009
> Andy Colson wrote:
>> First you need to find libjpeg. one way is:
>>
>> ldconfig -v|grep jpeg
>>
>> if not there, try a few common places:
>>
>> ls /usr/lib/libjpeg*
>> ls /usr/local/lib/libjpeg*
>>
>> or if you have locate/slocate then try:
>> slocate libjpeg.so.7
>>
>> Second, if it seemed to compile ok, then it found the .h files (which
>> are probably in /usr/include or /usr/local/include), but when you run
>> it, its looking for libjpeg.so, and specifically, libjpeg.so.7 which
>> is probably a symlink.
>>
>>
>> My guess is the lib is in /usr/local/lib, but you dont have that lib
>> in /etc/ld.so.conf.
>> Probably just need to add that path to the file and then run ldconfig
>> once.
>>
>> -Andy
>>
Alan Hale wrote:
> Many thanks Andy
>
> I had already determined (I'm sorry I wasn't clear) that libjpeg.so.7
> was present in /usr/local/lib/ and tried config
> --with-jpeg=/usr/local/lib/ and still got the same error. The .h files
> are in both /usr/include/ and /usr/local/include/
>
> ldconfig is new to me and I get "command not found" on my system (CentOS
> 5 by the way).
>
> /etc/ld.so.conf just has one line to include ld.so.conf.d/*.conf and
> when I look in ld.so.conf.d there is only one file: mysql-i386.conf
>
> Due to my inexperience, I'm sure, I remain very confused.
>
> Thanks again
>
> Alan
>
>
>
>
If you post your responses at the bottom, it'll keep messages much more readable.
ldconfig is probably in /sbin, and you'll need to be root to run it.
The compiler found the .h files and all the other stuff it needed to compile because it was given paths to /usr/local/*, but when you run the program it needs to find the shared lib's (*.so). /etc/ld.so.conf tells the runtime where to search for shared lib's.
Your ldconfig will look in each file in /etc/ld.so.conf.d/ and read all the paths in each file, and look in each path. (one file could contain multiple paths) Create a new file in there (call it local.conf, or user.conf, or bob.conf, or whatever).
If you 'cat /etc/ld.so.conf.d/mysql-i386.conf' you'll probably see one line:
/usr/lib/mysql
In the same manner create a local.conf with just one line:
/usr/local/lib
then as root run:
ldconfig
(or /sbin/ldconfig)
(root usually has /sbin in its path, where a normal user does not).
-Andy
More information about the MapServer-users
mailing list