common.mk

I have a silly question.

I need to use a shared object. I added into the common.mk file this line

LIBS+=m /proc/boot/libcei22032.so

till here no locical problems…when I build it gives me a “file not found” error referencing to this library…now, I think the problem is that “/proc/boot” is not phisically on the disk, so at build time it can’t find the file…
so my question is: there is a sort of option/statment/boh which make the IDE skip the search of the path during the linking, but do that only at runtime? (when everything is ok)

I can always use th dlopen() functions but LIBS is the fastest/useful way…

thank (I hope someone understan me…)

set the LIBS with correct path on the development system
at runtime make sure that LD_LIBRARY_PATH have /proc/boot included

alle the path seems to be ok… teh problem is that /proc/boot is not phisically on the hd0 but is only an image loaded at boot time…probbabily it disturb the IDE…

instead of chaning the common.mk, I suggest you add a new LIB path in the IDE, also if it compiled ok, you also need to make sure that this .so file is placed in the LIB PATH of the system so that at run time it can be located. For example, I placed my .so file in /opt/dll and /opt/lib where /opt/lib is a symbolic link to lib file in /opt/dll

Each of the files listed as a LIB is passed on the command line to the linker with the -l option. This option tells ld to put the word “lib” at the front of the filename, and “.so” or “.a” at the end. So the file it is looking for is “lib/proc/boot/libcei22032.so.so”. This file obviously does not exist. The solution is to do the following in the common.mk:

EXTRA_LIBVPATH+=/proc/boot
LIBS=m cei22032

OR, if you are doing this directly on the command-line, the options would be:

-L/proc/boot -lm -lcei22032