1

I'm a full beginner in Linux.

I need to program some PLC (ADAM 5630 of Advantech). It is based on the CPU TI Cortex A8 and has Linux RT 3.12 (Linux adam5630 3.12.10-rt15-ti2013.12.01; Distributor: Yocto) on it.

Advantech gives some Linux C/C++ libs for programming PLC modules and VirtualBox image with installed OS Linux (Ubuntu 18.04.1 LTS x86-64 Bionic Beaver) and corresponding toolchain (it is placed in /opt/ti-processor-sdk-linux-rt-am335x-evm-04.03.00.05/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/), but doesn't provide any useful information on how to compile a program.

When I compile a program whith the toolchain above (using arm-linux-gnueabihf-g++) and run it on the PLC I get an error:

/lib/libstdc++.so.6: version CXXABI_1.3.8' not found

(By the way, when I compile a small test program it runs ok.)


I ran a command on PLC:

ls -l /lib/libstdc++.so*

and got

libstdc++.so.6 -> libstdc++.so.6.0.17

and ran command on VirtualBox Linux

sudo ls -l /usr/lib/x86_64-linux-gnu/libstdc++.so*

and got

lrwxrwxrwx 1 root root      19 Mar 10  2020 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 -> libstdc++.so.6.0.25

So as I understood the version of provided compiler is higher than PLC's one.


Which way can I compile and run my prog on a PLC?

1
  • 1
    "So as I understood the version of provided compiler is higher ..." - It's the version number that is higher. The version is later (or more recent). Commented Jun 4 at 23:45

1 Answer 1

1

The solution, which helped me was to add flags

-static-libstdc++      
-static-libgcc

to compiler. That is to link libstdc++ statically, and it works for me

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.