Linker error

Hi,

I have a custom library created called libdb.so, I am trying to link the library to one of my projects using the momentics IDE (Ver 3.0.0 ) on QNX Neutrino Self hosted SP2, and i get an error from the linker saying it cannot find the .so, I know it exists but somehow it does not recognize it.

make -k all --file=/root/workspace/test_hmi/QMakefile83301.tmp
make -j 1 -Cx86 -fMakefile all
make[1]: Entering directory /root/workspace/test_hmi/x86' make -j 1 -Co -fMakefile all make[2]: Entering directory /root/workspace/test_hmi/x86/o’
/bin/rm -f /root/workspace/test_hmi/x86/o/test_hmi
/usr/qnx630/host/qnx6/x86//usr/bin/qcc -Vgcc_ntox86 -o/root/workspace/test_hmi/x86/o/test_hmi Data_read.o GetLaneNo.o abmain.o db_start.o text_change.o -L. -L/usr/lib -L/root/db_so -L/lib/dll -L/usr/qnx630/target/qnx6/x86/lib -L/usr/qnx630/target/qnx6/x86/usr/lib -llibdb.so -lxml2 -lz -liconv -lm -lsocket -lAp -lph -lm
/usr/qnx630/host/qnx6/x86//usr/bin/ntox86-ld: cannot find -llibdb.so
cc: /usr/qnx630/host/qnx6/x86//usr/bin/ntox86-ld error 1
make[2]: *** [/root/workspace/test_hmi/x86/o/test_hmi] Error 1
make[2]: Target all' not remade because of errors. make[2]: Leaving directory /root/workspace/test_hmi/x86/o’
make -j 1 -Co-g -fMakefile all
make[1]: [all] Error 2 (ignored)
make[2]: Entering directory /root/workspace/test_hmi/x86/o-g' /bin/rm -f /root/workspace/test_hmi/x86/o-g/test_hmi_g /usr/qnx630/host/qnx6/x86//usr/bin/qcc -Vgcc_ntox86 -o/root/workspace/test_hmi/x86/o-g/test_hmi_g Data_read.o GetLaneNo.o abmain.o db_start.o text_change.o -L. -L/usr/lib -L/root/db_so -L/lib/dll -L/usr/qnx630/target/qnx6/x86/lib -L/usr/qnx630/target/qnx6/x86/usr/lib -llibdb.so -lxml2 -lz -liconv -lm -lsocket -lAp -lph -lm -g /usr/qnx630/host/qnx6/x86//usr/bin/ntox86-ld: cannot find -llibdb.so cc: /usr/qnx630/host/qnx6/x86//usr/bin/ntox86-ld error 1 make[2]: *** [/root/workspace/test_hmi/x86/o-g/test_hmi_g] Error 1 make[2]: Target all’ not remade because of errors.
make[2]: Leaving directory /root/workspace/test_hmi/x86/o-g' make[1]: Leaving directory /root/workspace/test_hmi/x86’
make[1]: [all] Error 2 (ignored)

Can anyone tell me what s going on ?

regards,

QNXLYZER

The file has to be in the one of the directory specify via -L option. If it’s not then you must specify an extra directory via the IDE.

The file is located in one of the directories specified by the -L/root/db_so option. That is the problem, eventhough i have specified the paths and the filenames, the linker cannot seem to recognize or find the shared library.

Try specifying -ldb instead.

Thanks for the reply, It works now, I guess the linker does append the lib part.

regards,

Pavan.