AnsweredAssumed Answered

Eclipse Yocto project

Question asked by leesommerville on Jun 11, 2018
Latest reply on Jul 12, 2018 by gusarambula

Hi All,

 

I am trying to build a simple gstreamer app to run on a Toradex Apalis SOM.

I have built the standard Toradex 2.7 version of their Yocto project (image and SDK). I am running the image from this build with no issues. I have setup Eclipse using the Yocto plugin to compile the basic Eclipse Hello World project, the resulting binary I can run on the Apalis board no problems.

 

However, I am running into issues when trying to link some libraries from the Yocto file system image that gstreamer is dependent on. I have changed the code from the Hello World project to include basic gstreamer code which I have running on my PC.

It appears I have successfully linked some of the libraries, although I do get a warning that “libstdc++.la” and “libgstreamer-1.0.la” have been moved!?:

libtool: warning: library '/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/lib/libstdc++.la' was moved.

libtool: warning: library '/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/lib/libgstreamer-1.0.la' was moved.

 

However when the linker tries to link in the “libgobject-2.0.la” library, I get an error:

libtool:   error: cannot find the library '/usr/lib/libgobject-2.0.la' or unhandled argument '=/usr/lib/libgobject-2.0.la'

 

Even though the “libgobject-2.0.la” library is included in the same manner as the “libstdc++.la” and “libgstreamer-1.0.la” libraries:

-lstdc++ -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0

 

The linker appears to be looking in a different location for the library (“/usr/lib/” vs. “/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/lib/”).

I have looked into the Yocto file system and I do see the “libgobject-2.0.la” file along with the “libstdc++.la” and “libgstreamer-1.0.la” files in the directory “/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/lib/”.

 

Does anyone have any idea on what I am doing wrong?

Can anyone suggest any documentation on how to set up a Yocto project in Eclipse that links an external library?

 

I have included below the resulting build console output from my projects build.

Thanks for your time.

 

Cheers,

Lee

 

 

10:43:33 **** Build of configuration Debug (GNU) for project GStreamerCpp ****
make all
make  all-recursive
make[1]: Entering directory '/home/lee/eclipse-workspace/GStreamerCpp'
Making all in src
make[2]: Entering directory '/home/lee/eclipse-workspace/GStreamerCpp/src'
arm-angstrom-linux-gnueabi-g++  -march=armv7-a -mthumb -mfpu=neon  -mfloat-abi=hard --sysroot=/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi -DHAVE_CONFIG_H -I. -I..   --sysroot=/home/lee/oe-core/build/tmp-glibc/sysroots/apalis-imx6 -I/home/lee/oe-core/build/tmp-glibc/sysroots/apalis-imx6/usr/include/gstreamer-1.0 -I/home/lee/oe-core/build/tmp-glibc/sysroots/apalis-imx6/usr/lib/gstreamer-1.0/include -I/home/lee/oe-core/build/tmp-glibc/sysroots/apalis-imx6/usr/include/glib-2.0 -I/home/lee/oe-core/build/tmp-glibc/sysroots/apalis-imx6/usr/include/libxml2 -I/home/lee/oe-core/build/tmp-glibc/sysroots/apalis-imx6/usr/lib/glib-2.0/include -g -O0 -MT HelloWorld.o -MD -MP -MF .deps/HelloWorld.Tpo -c -o HelloWorld.o HelloWorld.cpp
mv -f .deps/HelloWorld.Tpo .deps/HelloWorld.Po
/bin/bash ../libtool  --tag=CXX   --mode=link arm-angstrom-linux-gnueabi-g++  -march=armv7-a -mthumb -mfpu=neon  -mfloat-abi=hard --sysroot=/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi -I/home/lee/oe-core/build/tmp-glibc/sysroots/apalis-imx6/usr/include/gstreamer-1.0 -I/home/lee/oe-core/build/tmp-glibc/sysroots/apalis-imx6/usr/lib/gstreamer-1.0/include -I/home/lee/oe-core/build/tmp-glibc/sysroots/apalis-imx6/usr/include/glib-2.0 -I/home/lee/oe-core/build/tmp-glibc/sysroots/apalis-imx6/usr/include/libxml2 -I/home/lee/oe-core/build/tmp-glibc/sysroots/apalis-imx6/usr/lib/glib-2.0/include -g -O0 -lstdc++ -lVDK -lm -lGLESv2 -lGAL -lEGL  -ldl -lgstreamer-1.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lxml2 -lglib-2.0 --sysroot=/home/lee/oe-core/build/tmp-glibc/sysroots/apalis-imx6 -o HelloWorld HelloWorld.o 
libtool: warning: library '/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/lib/libstdc++.la' was moved.
libtool: warning: library '/usr/local/oecore-x86_64/sysroots/armv7at2hf-neon-angstrom-linux-gnueabi/usr/lib/libgstreamer-1.0.la' was moved.
libtool:   error: cannot find the library '/usr/lib/libgobject-2.0.la' or unhandled argument '=/usr/lib/libgobject-2.0.la'
Makefile:386: recipe for target 'HelloWorld' failed
make[2]: *** [HelloWorld] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
make[2]: Leaving directory '/home/lee/eclipse-workspace/GStreamerCpp/src'
Makefile:403: recipe for target 'all-recursive' failed
make[1]: Leaving directory '/home/lee/eclipse-workspace/GStreamerCpp'
Makefile:335: recipe for target 'all' failed

Outcomes