Raspberry Pi 3: debug info, how to fix?
-
@JiujiuTong Maybe you should try to call configure from a clean Qt source directory? Did you try to build Qt before for x86? Even better would be to do out of source build see http://stackoverflow.com/questions/1245011/how-to-build-qt-out-of-source
-
@JiujiuTong What I mean with this "Did you try to build Qt before for x86?" is - did you build for x86 OR x86_64 before from the SAME source code tree? Because currently you're linking against your host libraries.
-
@crasskitty
sorry , i don't understand what's your meanings -
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 -