[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