Chronos > Software Dev

Building Qt-creator

<< < (2/3) > >>

foobar:
You might be able to find out a little more info by navigating into the "~/Work/chronos-sdk/qt4-install/config.tests/unix/tslib" folder and running "make", this should attempt to compile a test program to verify the CFLAGS and LDFLAGS necessary for building the tslib components. For example, on my Ubuntu 16.04 virtual machine, and following the v0.3.0 build instructions, I get the following output by running make:


--- Code: ---osk@virtualbox:~/Work/chronos-sdk/qt4-build/config.tests/unix/tslib$ make
arm-linux-gnueabi-g++ -c -pipe --sysroot=/home/osk/Work/chronos-sdk/targetfs -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
-Wall -W  -I../../../../qt-everywhere-opensource-src-4.8.7/mkspecs/qws/linux-omap2-g++ -I../../../../qt-everywhere-opensource-src-4.8.7/config.tests/unix/tslib
-I../../../../qt-everywhere-opensource-src-4.8.7/config.tests/unix/tslib -I. -o tslib.o ../../../../qt-everywhere-opensource-src-4.8.7/config.tests/unix/tslib/tslib.cpp
arm-linux-gnueabi-g++ -Wl,-O1 -o tslib tslib.o     --sysroot=/home/osk/Work/chronos-sdk/targetfs -lts
--- End code ---

And my targetfs was created from a v0.3.0 camera, and extracting the update.tgz from the beta-9 update ontop of it. Searching for tslib in the targetfs should give the following hits:

--- Code: ---osk@virtualbox:~/Work/chronos-sdk/qt4-build/config.tests/unix/tslib$ find /home/osk/Work/chronos-sdk/targetfs/usr | grep tslib
/home/osk/Work/chronos-sdk/targetfs/usr/include/tslib.h
/home/osk/Work/chronos-sdk/targetfs/usr/lib/opkg/info/tslib-conf.list
/home/osk/Work/chronos-sdk/targetfs/usr/lib/opkg/info/qt4-embedded-plugin-mousedriver-tslib.list
/home/osk/Work/chronos-sdk/targetfs/usr/lib/opkg/info/tslib-calibrate.control
/home/osk/Work/chronos-sdk/targetfs/usr/lib/opkg/info/qt4-embedded-plugin-mousedriver-tslib.control
/home/osk/Work/chronos-sdk/targetfs/usr/lib/opkg/info/tslib-conf.control
/home/osk/Work/chronos-sdk/targetfs/usr/lib/opkg/info/tslib-tests.list
/home/osk/Work/chronos-sdk/targetfs/usr/lib/opkg/info/tslib-calibrate.list
/home/osk/Work/chronos-sdk/targetfs/usr/lib/opkg/info/tslib-tests.control
/home/osk/Work/chronos-sdk/targetfs/usr/lib/directfb-1.4-5/inputdrivers/libdirectfb_tslib.so
/home/osk/Work/chronos-sdk/targetfs/usr/lib/pkgconfig/tslib.pc
/home/osk/Work/chronos-sdk/targetfs/usr/lib/pkgconfig/tslib-1.0.pc
/home/osk/Work/chronos-sdk/targetfs/usr/lib/qtopia/plugins/mousedrivers/libqtslibmousedriver.so
--- End code ---

In order to pass the tslib functionality test, Qt needs to be able to be able to find <path to sysroot>/usr/include/tslib.h and <path to sysroot>/usr/lib/libts.so

Matom:
Thank you very much. This helped a lot. And I am so sorry to keep bothering you.

I found out that my libts.so was a different version, so I made a symbolic link from <path to sysroot>/usr/lib/libts.so to the version in my <path to sysroot>/usr/lib folder.
 
After doing that I got a new error message when making the tslib config fest

undefined reference to `dlsym@GLIBC_2.4'
 undefined reference to `dlopen@GLIBC_2.4'
 undefined reference to `dlclose@GLIBC_2.4'

I avoided this error by adding -ldl to the qmake file (QMAKE_LIBS += '-lts -ldl').

Now, I could configure and install Qt. Wuhuu! However, after following all the steps on github about the settings of Qt, I tried to build the camApp but got these errors about missing libraries:

  /usr/lib/gcc-cross/arm-linux-gnueabi/5/../../../../arm-linux-gnueabi/bin/ld: cannot find -lOMX_Core
/usr/lib/gcc-cross/arm-linux-gnueabi/5/../../../../arm-linux-gnueabi/bin/ld: cannot find -lgmodule-2.0
/usr/lib/gcc-cross/arm-linux-gnueabi/5/../../../../arm-linux-gnueabi/bin/ld: cannot find -lgobject-2.0
/usr/lib/gcc-cross/arm-linux-gnueabi/5/../../../../arm-linux-gnueabi/bin/ld: cannot find -l:libxml2.so.2
/usr/lib/gcc-cross/arm-linux-gnueabi/5/../../../../arm-linux-gnueabi/bin/ld: cannot find -lgthread-2.0
/usr/lib/gcc-cross/arm-linux-gnueabi/5/../../../../arm-linux-gnueabi/bin/ld: cannot find -lglib-2.0
/usr/lib/gcc-cross/arm-linux-gnueabi/5/../../../../arm-linux-gnueabi/bin/ld: cannot find -lgstapp-0.10

I am wondering if this is a sign that there is something completely wrong with my libraries or if there is an easy way to get all of them?

I really appreciate the help!

foobar:
Hey Matom,

--- Quote from: Matom on November 15, 2018, 08:03:01 AM ---  /usr/lib/gcc-cross/arm-linux-gnueabi/5/../../../../arm-linux-gnueabi/bin/ld: cannot find -lOMX_Core
/usr/lib/gcc-cross/arm-linux-gnueabi/5/../../../../arm-linux-gnueabi/bin/ld: cannot find -lgmodule-2.0
/usr/lib/gcc-cross/arm-linux-gnueabi/5/../../../../arm-linux-gnueabi/bin/ld: cannot find -lgobject-2.0
/usr/lib/gcc-cross/arm-linux-gnueabi/5/../../../../arm-linux-gnueabi/bin/ld: cannot find -l:libxml2.so.2
/usr/lib/gcc-cross/arm-linux-gnueabi/5/../../../../arm-linux-gnueabi/bin/ld: cannot find -lgthread-2.0
/usr/lib/gcc-cross/arm-linux-gnueabi/5/../../../../arm-linux-gnueabi/bin/ld: cannot find -lglib-2.0
/usr/lib/gcc-cross/arm-linux-gnueabi/5/../../../../arm-linux-gnueabi/bin/ld: cannot find -lgstapp-0.10

I am wondering if this is a sign that there is something completely wrong with my libraries or if there is an easy way to get all of them?
--- End quote ---

I agree, it looks like there is something wrong with your configuration of Qt creator and it's unable to find the libraries from the targetfs. They should all be present in the <path to targetfs>/usr/lib directory. Did you set the Sysroot when configuring the Kit in Qt Creator?

Matom:
I did set the Sysroot path..


When I look in /home/majtom/Work/chronos-sdk/targetfs/usr/lib I can see that the versions of the libraries are different. For example the libxml2.so.2 in my folder is libxml2.so.2.7.8. I will try to link the versions.

But, there is no OMX_Core library at all.

Matom:
It worked with linking the libraries :) (at least the error messages are gone).

Can you send me the OMX_Core library? I cannot seem to find it online.

Thank you in advance.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version