Raspberry Pi 3: debug info, how to fix?
-
@jsulm
another question:
my host is Centos 7 x64 , should i change`the following :
Go to Options -> Compilers
Add
GCC
Compiler path: ~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++
to
Go to Options -> Compilers
Add
GCC
Compiler path: ~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++
in Qt Creator configuration? -
@jsulm
my project compile output is :
/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 toQGLContext::currentContext()@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::setAttributeArray(char const*, float const*, int, int)@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::hasOpenGLShaderPrograms(QGLContext const*)@Qt_5' /home/tong/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libQt5OpenGL.so.5: undefined reference to
QStaticTextItem::setFontEngine(QFontEngine*)'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::addShaderFromSourceCode(QFlags<QGLShader::ShaderTypeBit>, char const*)@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLContext::contextHandle() const@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::removeAllShaders()@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::enableAttributeArray(char const*)@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::link()@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::QGLShaderProgram(QGLContext const*, QObject*)@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::release()@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::setUniformValue(char const*, QMatrix4x4 const&)@Qt_5'
/home/tong/raspi/sysroot/usr/lib/libactivemq-cpp.so: undefined reference tostd::__throw_out_of_range_fmt(char const*, ...)@GLIBCXX_3.4.20' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::~QGLShaderProgram()@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::log() const@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::setUniformValue(char const*, float const (*) [4])@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::setUniformValue(char const*, int)@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::bind()@Qt_5'
collect2: error: ld returned 1 exit status
make: *** [FMT] Error 1
23:37:26: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project FMT (kit: rpi3)
When executing step "Make"
do you know what's wrong with it ? thank you very much!! my project is cross complier project, my host is centos 7 64bit ,my target device is rpi3 following the steps :
http://wiki.qt.io/RaspberryPi2E
the difference is that my QT5.7.1 source code is download form QT not from git, and i run the configure command (./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) under Qt5.7.1 directory not under Qtbase, so i think all modules except webengine are installed. and i configure QT creator with raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/ /arm-linux-gnueabihf-g++
and i skipped the "11. Still on the device, fix the EGL/GLES library nonsense:"
the error informations seems to relative with qtmultimedia and qtthread. i really don't know how to fix with this. please help me,thank you! -
@JiujiuTong It doesn't matter whether the compiler itself is 32bit or 64bit.
Regarding errors: were QtMultimedia and Qt OpenGL modules built? -
@jsulm
do you mean QtMultimedia and Qt OpenGL were not built ?
in qt-everywhere-opensource Qt5.7.1, with "./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 ", i think these module should be built , how to check if these modules were built or not ? -
@JiujiuTong Are the libraries there?
-
@jsulm
Qt OpenGL modules? it seems no this module there.
and i rebuild QtMultimedia module, it's no problem
there is no need to install OpenGL in raspberry 3 ,right?
in my host i have install openGL now ,it still doesn't work -
@jsulm
i can find libQt5MultimediaWidgets.so , but i don't know where to find openGL related files... -
@JiujiuTong What about libQt5OpenGL.so ?
-
@jsulm
I reconfigure and reinstall the QT,and find the opengl related files in the source qtbase ,
I also find the libQt5OpenGL.so after reinstall. I will retry the project later. thank you for your informs. -
@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 toQGLContext::currentContext()@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::setAttributeArray(char const*, float const*, int, int)@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::hasOpenGLShaderPrograms(QGLContext const*)@Qt_5' /home/tong/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libQt5OpenGL.so.5: undefined reference to
QStaticTextItem::setFontEngine(QFontEngine*)'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::addShaderFromSourceCode(QFlags<QGLShader::ShaderTypeBit>, char const*)@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLContext::contextHandle() const@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::removeAllShaders()@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::enableAttributeArray(char const*)@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::link()@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::QGLShaderProgram(QGLContext const*, QObject*)@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::release()@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::setUniformValue(char const*, QMatrix4x4 const&)@Qt_5'
/home/tong/raspi/sysroot/usr/lib/libactivemq-cpp.so: undefined reference tostd::__throw_out_of_range_fmt(char const*, ...)@GLIBCXX_3.4.20' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::~QGLShaderProgram()@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::log() const@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::setUniformValue(char const*, float const (*) [4])@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::setUniformValue(char const*, int)@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::bind()@Qt_5'
collect2: error: ld returned 1 exit status
make: *** [FMT] Error 1
20:57:20: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project FMT (kit: rpi3)
The kit rpi3 has configuration issues which might be the root cause for this problem.
When executing step "Make" -
@JiujiuTong said in Qt on rpi3 , debug info ,how to fix?:
@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 toQGLContext::currentContext()@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::setAttributeArray(char const*, float const*, int, int)@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::hasOpenGLShaderPrograms(QGLContext const*)@Qt_5' /home/tong/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libQt5OpenGL.so.5: undefined reference to
QStaticTextItem::setFontEngine(QFontEngine*)'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::addShaderFromSourceCode(QFlags<QGLShader::ShaderTypeBit>, char const*)@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLContext::contextHandle() const@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::removeAllShaders()@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::enableAttributeArray(char const*)@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::link()@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::QGLShaderProgram(QGLContext const*, QObject*)@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::release()@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::setUniformValue(char const*, QMatrix4x4 const&)@Qt_5'
/home/tong/raspi/sysroot/usr/lib/libactivemq-cpp.so: undefined reference tostd::__throw_out_of_range_fmt(char const*, ...)@GLIBCXX_3.4.20' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::~QGLShaderProgram()@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::log() const@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::setUniformValue(char const*, float const (*) [4])@Qt_5'
/home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference toQGLShaderProgram::setUniformValue(char const*, int)@Qt_5' /home/tong/raspi/qt5pi/lib/libQt5MultimediaWidgets.so: undefined reference to
QGLShaderProgram::bind()@Qt_5'
collect2: error: ld returned 1 exit status
make: *** [FMT] Error 1
20:57:20: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project FMT (kit: rpi3)
The kit rpi3 has configuration issues which might be the root cause for this problem.
When executing step "Make"
@jsulm ,do you have any ideas? thank you ! -
@JiujiuTong said in Qt on rpi3 , debug info ,how to fix?:
skipping incompatible /usr/lib/libpthread.so
You are linking against x86 libraries installed in your host machine! You need to link against libraries for your target device since you're cross-compiling.
-
@jsulm
my host machine is x64 , i don't kown what to do.
can you tell me how to link it please? i'm following the instructures descripted by :
http://wiki.qt.io/RaspberryPi2EGLFS
can you give me some instructions please!,thank you very much -
@JiujiuTong How are you building? Can you show your configure call? Does your sysroot contain all needed libraries?
-
@jsulm
i,m using cross compile,and 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 -vand i sysroot all the directory under raspi with "./sysroot-relativelinks.py sysroot"
-
@JiujiuTong said in Qt on rpi3 , debug info ,how to fix?:
~/raspi/sysroot
Did you check that your sysroot really contains what is needed (for example ~/raspi/sysroot/usr/lib)?
-
@jsulm
i really don't know what libs are needed, so i do not check the Dir, the folder is created by :
mkdir sysroot sysroot/usr sysroot/opt
rsync -avz pi@raspberrypi.local:/lib sysroot
rsync -avz pi@raspberrypi.local:/usr/include sysroot/usr
rsync -avz pi@raspberrypi.local:/usr/lib sysroot/usr
rsync -avz pi@raspberrypi.local:/opt/vc sysroot/opt
and i checked that the output is right with no error. -
@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