Problem Running Vehicle Tracking Use Case

8 posts / 0 new
Last post
Offline
Last seen: 4 years 3 days ago
Joined: 10/28/2020
Posts: 3
Problem Running Vehicle Tracking Use Case

Hi, I am trying to run the vehicle tracking use case on Linux. After I run gmake, I recieve a very long list of errors regarding the auto generated file "AirTrafficControlSupport.cxx". An example of the error messages is:

 

AirTrafficControl.cxx:(.text+0xe2be): undefined reference to `RTILog_setLogLevel'
AirTrafficControl.cxx:(.text+0xe2c9): undefined reference to `DDSLog_g_instrumentationMask'

 

When I check the generated folder, the AirTrafficControlSupport has been generated and seems to be correct. Any advice on how to fix this error?

Howard's picture
Offline
Last seen: 12 hours 11 min ago
Joined: 11/29/2012
Posts: 605

This looks like a linking issue.  The linker isn't finding the Connext DDS libraries.  What is the output showing the link command arguments?  Does it show Connext DDS libraries?  Are the paths to the libs defined?  Maybe you're missing an evironment variable or something?

rose's picture
Offline
Last seen: 3 years 3 months ago
Joined: 08/22/2011
Posts: 148

Hello kayajae!

Do you have multiple versions of Connext DDS installed? Also, what architecture are you compiling for?  (Are you using one of the makefiles that is provided with the example?)

Thank you,

Rose

Offline
Last seen: 4 years 3 days ago
Joined: 10/28/2020
Posts: 3

Hi,

this is what is first outputted:

g++ -m64 -static-libgcc -o objs/x64Linux3gcc4.8.2/FlightPlan/FlightPlanGenerator objs/x64Linux3gcc4.8.2/FlightPlan/FlightPlanPublisherInterface.o objs/x64Linux3gcc4.8.2/FlightPlan/FlightPlanGenerator.o objs/x64Linux3gcc4.8.2/Common/DDSCommunicator.o objs/x64Linux3gcc4.8.2/Common/OSAPI.o objs/x64Linux3gcc4.8.2/Common/AirTrafficControl.o objs/x64Linux3gcc4.8.2/Common/AirTrafficControlPlugin.o objs/x64Linux3gcc4.8.2/Common/AirTrafficControlSupport.o -L"/opt/rti_connext_dds-5.3.1"/lib/x64Linux3gcc4.8.2  -ldl -lnsl -lm -lpthread -lrt     

I am compiling for Linux 4.8.2. I am using one of the makefiles but this arch didn't exist in my download. I edited the arch in the Makefile.x64Linux3gcc5.4.6 to match my arch. If I run this makefile without the arch changed, it still fails 

Howard's picture
Offline
Last seen: 12 hours 11 min ago
Joined: 11/29/2012
Posts: 605

It doesn't look like you're including any RTI Connext DDS libraries in your link line.  You need libs like " -lrticonnextmsgcpp -lnddscpp -lnddsc -lnddscore"

Offline
Last seen: 4 years 3 days ago
Joined: 10/28/2020
Posts: 3

Thanks, that helped!!! :) When I fixed that, I got another error which was: 

/usr/bin/ld: cannot find -lwx_gtk2u_xrc-3.0
/usr/bin/ld: cannot find -lwx_gtk2u_html-3.0
/usr/bin/ld: cannot find -lwx_gtk2u_qa-3.0
/usr/bin/ld: cannot find -lwx_gtk2u_adv-3.0
/usr/bin/ld: cannot find -lwx_gtk2u_core-3.0
/usr/bin/ld: cannot find -lwx_baseu_xml-3.0
/usr/bin/ld: cannot find -lwx_baseu_net-3.0
/usr/bin/ld: cannot find -lwx_baseu-3.0

I understand that these files cannot be found but not sure where to look for them or how to fix the error.

r
Offline
Last seen: 16 hours 17 min ago
Joined: 06/17/2019
Posts: 48

Our windows targets and one linux target (x64Linux3gcc5.4.0) include the prebuilt wxwidgets that this case+code demonstration uses. 

This is why the only linux make file that comes with the example is for the x64Linux3gcc5.4.0 platform. 

Do you have the x64Linux3gcc5.4.0 Connext DDS target installed on your linux platform? And are you using that makefile?

Howard's picture
Offline
Last seen: 12 hours 11 min ago
Joined: 11/29/2012
Posts: 605

As Ross said, you are missing the libs from wxWidgets.  You can install wxWidgets 3.0 on your Linux box...how to do so depends on your distribution.

https://wiki.codelite.org/pmwiki.php/Main/WxWidgets30Binaries#toc2