Search code examples
linuxqnxdata-distribution-serviceqcc

Cannot find ldl lnsl lpthread lrt when buildling?


I am trying to build the RTI perftest in an i86 QNX architecture. When I try to build the makefile that I generated, I get the following:

Checking directory obj/i86QNX6.6qcc_cpp4.7.3/Release
Checking directory ../bin/i86QNX6.6qcc_cpp4.7.3/Release
qcc -V4.7.3,gcc_ntox86 -Y_cpp -lang-c++ -m64 -Wall -o ../bin/i86QNX6.6qcc_cpp4.7.3/Release/perftest_cpp obj/i86QNX6.6qcc_cpp4.7.3/Release/test.o obj/i86QNX6.6qcc_cpp4.7.3/Release/testPlugin.o obj/i86QNX6.6qcc_cpp4.7.3/Release/testSupport.o obj/i86QNX6.6qcc_cpp4.7.3/Release/Property.o obj/i86QNX6.6qcc_cpp4.7.3/Release/RTIDDSImpl.o obj/i86QNX6.6qcc_cpp4.7.3/Release/perftest_cpp.o -L/opt/RTI/ndds.5.1.0/lib/i86QNX6.6qcc_cpp4.7.3 -lnddscppz -lnddscz -lnddscorez -lm -lsocket  -lpthread -lnsl -lrt -L/usr/lib/nptl
/opt/qnx/6.6.0/host/linux/x86/usr/bin/i486-pc-nto-qnx6.6.0-ld: cannot find -lpthread
/opt/qnx/6.6.0/host/linux/x86/usr/bin/i486-pc-nto-qnx6.6.0-ld: cannot find -lnsl
/opt/qnx/6.6.0/host/linux/x86/usr/bin/i486-pc-nto-qnx6.6.0-ld: cannot find -lrt
cc: /opt/qnx/6.6.0/host/linux/x86/usr/bin/i486-pc-nto-qnx6.6.0-ld error 1
make: *** [../bin/i86QNX6.6qcc_cpp4.7.3/Release/perftest_cpp] Error 1

I am not to familiar with QNX and its libraries, but when I remove those flags I get a ton of errors. Any tips on how to build the perftest for QNX or dealing with this error would be great, thanks!


Solution

  • My makefile has the following build line which resolves all symbols and results in a running executable:

    qcc -o ../bin/i86QNX6.6qcc_cpp4.7.3/Release/perftest_cpp 
      obj/i86QNX6.6qcc_cpp4.7.3/Release/test.o 
      obj/i86QNX6.6qcc_cpp4.7.3/Release/testPlugin.o 
      obj/i86QNX6.6qcc_cpp4.7.3/Release/testSupport.o 
      obj/i86QNX6.6qcc_cpp4.7.3/Release/RTIDDSImpl.o 
      obj/i86QNX6.6qcc_cpp4.7.3/Release/perftest_cpp.o
      -L/opt/RTI/rti_connext_dds-5.2.3/lib/i86QNX6.6qcc_cpp4.7.3
      -lnddscppz -lnddscz -lnddscorez -lm -lsocket
      -V4.7.3,gcc_ntox86 -Y_cpp -lang-c++ -Wall
    

    Note that it has none of the libraries that you mention.