Raspberry Pi 3: debug info, how to fix?
-
I dont´t know if you still have the debugging problem but to answer to your first post:
The qt libraries for rpi are written to the
qt5pi
directory, outside of the rsynced sysroot.
The debugger is looking in the local sysroot directory for the libraries if you debug remote targets.
So just tell gdb to load the libraries of your project from the debugging target.
In Qt Creator go to Options->Debugger GDB-Tab an insertset sysroot target:/
in "Additional Startup Commands" -
@sneubert
thank you for your answer!
should I just insert "set sysroot target:/" in "Additional Startup Commands" or replace string with my ENV value?
I can understand you description, but confused with "set sysroot target:/" i have set sysroot to "/home/tong/rasp/sysroot" in build&run -->kits-->sysroot. should the target:/ be the real path or something? thank you very much! -
Leave you sysroot path in build&run --> kit --> sysroot the way it is, because this is needed for building your application. The set sysroot command I told you is just for gdb to instruct loading libraries remote. Use the exact string
set sysroot target:/
only for "Additional Startup Commands" in Options->Debugger GDB-Tab. -
@SSGaist
can you help me out of this problem? thank you!
@jsulm
i have check the files , both ligQt5OpenGL.so and libQt5Multimedia.so exists,
and the build output is still:
/home/tong/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread
/home/tong/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm
/home/tong/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to QGLContext::currentContext()@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::setAttributeArray(char const*, float const*, int, int)@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to QGLShaderProgram::hasOpenGLShaderPrograms(QGLContext const*)@Qt_5' /home/tong/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libQt5OpenGL.so.5: undefined reference toQStaticTextItem::setFontEngine(QFontEngine*)'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to QGLShaderProgram::addShaderFromSourceCode(QFlagsQGLShader::ShaderTypeBit, char const*)@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLContext::contextHandle() const@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to QGLShaderProgram::removeAllShaders()@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::enableAttributeArray(char const*)@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to QGLShaderProgram::link()@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::QGLShaderProgram(QGLContext const*, QObject*)@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to QGLShaderProgram::release()@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::setUniformValue(char const*, QMatrix4x4 const&)@Qt_5'
/home/tong/raspi/sysroot/usr/lib/libactivemq-cpp.so: undefined reference to std::__throw_out_of_range_fmt(char const*, ...)@GLIBCXX_3.4.20' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::~QGLShaderProgram()@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to QGLShaderProgram::log() const@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::setUniformValue(char const*, float const () [4])@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to QGLShaderProgram::setUniformValue(char const, int)@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::bind()@Qt_5'
collect2: error: ld returned 1 exit status -
@JiujiuTong As I said "skipping incompatible" message means that the library is build for a different architecture. You're most probably mixing architectures.
/usr/lib/libpthread.so - this looks like a path on your host PC. You cannot use libraries from your host PC (X86_64) to cross compile for ARM. -
@JiujiuTong Can you show your configure call?
-
@jsulm
my configure is :
"./configure -release -opengl es2 -skip webengine -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -v "
my host is centos 7 x64, the target is raspberry pi3. thank you ! -
@JiujiuTong Does your sysroot contain all that incompatible libraries (like libpthread.so)?
-
@jsulm
can you explain more precise, i'm just following the ways list by:
http://wiki.qt.io/RaspberryPi2EGLFS
should i do something else, if so can you help me ? -
@JiujiuTong "-sysroot ~/raspi/sysroot" - does ~/raspi/sysroot contain file libpthread.so ?
-
@JiujiuTong My question was: does it contain that file?
-
@jsulm
yes,there is a libpthread.so -
-
@jsulm
sorry for my late reply
these days i have been rework the job. just following the steps again.
now there is another error :
/usr/include/math.h:31: error: bits/math-vector.h: No such file or directory
#include <bits/math-vector.h>
i try to find the file bits/math-vector.h ,but there is no such file
and i searched that is should be included in libc6-dev package.
but i have installed the latest package , but still no such file
is there any other ways to fix it? thank you very much ! -
@JiujiuTong said in Qt on rpi3 , debug info ,how to fix?:
@jsulm
sorry for my late reply
these days i have been rework the job. just following the steps again.
now there is another error :
/usr/include/math.h:31: error: bits/math-vector.h: No such file or directory
#include <bits/math-vector.h>
i try to find the file bits/math-vector.h ,but there is no such file
and i searched that is should be included in libc6-dev package.
but i have installed the latest package , but still no such file
is there any other ways to fix it? thank you very much !@jsulm it seems that the qtcreator do not using the files specified by sysroot(~/rapi/sysroot/usr/include/math.h), it is using files on host files /usr/include/math, how can i use the files under sysroot ?thank you !
-
@JiujiuTong How did you configure the kit in QtCreator? If it is set up correctly then it should work.
-
@jsulm
i think the configure is correct, i am following the steps :
http://wiki.qt.io/RaspberryPi2EGLFS
first create device ,then configure compiler,debug, and Qtversion. Go to Options -> Build & Run with sysroot path selected.
i add the absolute path in the project, then it seem ok now with one problem:
https://forum.qt.io/topic/77854/error-undefined-reference-to-std-__throw_out_of_range_fmt-char-const-glibcxx_3-4-20/3
can you help me? -
@JiujiuTong Did you try what @SGaist suggested?