gcc-linaro кросс-компилятор arm-linux-gnueabihf ошибка компоновщика для малины SYSROOT - PullRequest
0 голосов
/ 07 ноября 2018

Я сталкиваюсь со странной ошибкой компоновщика в проекте cmake

/opt/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-c++ 
--sysroot=/path/to/raspi/sysroot     
CMakeFiles/my_program.dir/main.cpp.o [ ... more *.o .... ]
-o my_program  -L/path/to/raspi/sysroot/usr/lib/arm-linux-gnueabihf  
-L/path/to/raspi/sysroot/lib/arm-linux-gnueabihf  
-L/path/to/raspi/sysroot/usr/lib  
-L/path/to/project/station/../3rdparty/qhttp/xbin  
-L/path/to/project/station/../3rdparty/libnfc  
-L/path/to/project/station/../3rdparty/libfreefare 
-Wl,-rpath,/path/to/rpi_qt5/qt5pi/lib:/usr/lib/arm-linux-gnueabihf:/lib/arm-linux-gnueabihf:/usr/lib:/path/to/project/station/../3rdparty/qhttp/xbin:/path/to/project/station/../3rdparty/libnfc:/path/to/project/station/../3rdparty/libfreefare:/path/to/project/build/3rdparty/libnfc/libnfc:/path/to/project/build/3rdparty/libfreefare/libfreefare: /path/to/rpi_qt5/qt5pi/lib/libQt5Quick.so.5.9.7 /path/to/rpi_qt5/qt5pi/lib/libQt5Widgets.so.5.9.7 /path/to/rpi_qt5/qt5pi/lib/libQt5SerialPort.so.5.9.7 /path/to/rpi_qt5/qt5pi/lib/libQt5Qml.so.5.9.7 
-lasan 
../3rdparty/libnfc/libnfc/libnfc.so.5.0.1 
../3rdparty/libfreefare/libfreefare/libfreefare.so 
../libqhttp.a -lcrypto -lutil -lusb /path/to/rpi_qt5/qt5pi/lib/libQt5Network.so.5.9.7 
/path/to/rpi_qt5/qt5pi/lib/libQt5Gui.so.5.9.7 
/path/to/rpi_qt5/qt5pi/lib/libQt5Core.so.5.9.7 
/opt/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/7.3.1/../../../../arm-linux-gnueabihf/bin/ld: warning: libpthread.so.0, needed by /path/to/rpi_qt5/qt5pi/lib/libQt5Quick.so.5.9.7, not found (try using -rpath or -rpath-link)
/opt/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/7.3.1/../../../../arm-linux-gnueabihf/bin/ld: 

warning: libGLESv2.so, needed by /path/to/rpi_qt5/qt5pi/lib/libQt5Quick.so.5.9.7, not found (try using -rpath or -rpath-link)
/opt/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/7.3.1/../../../../arm-linux-gnueabihf/bin/ld: 
warning: libudev.so.1, needed by /path/to/rpi_qt5/qt5pi/lib/libQt5SerialPort.so.5.9.7, not found (try using -rpath or -rpath-link)
...

но библиотеки на своих местах, например вызов из каталога SYSROOT

$ find . -name libGLESv2.so'*' -exec ls -l {} \;

-rw-r--r-- 1 markus markus 105768 Jan 31  2018 ./opt/vc/lib/libGLESv2.so
lrwxrwxrwx 1 markus markus 12 Mar 26  2018 ./opt/vc/lib/libGLESv2.so.2 -> libGLESv2.so
-rwxr-xr-x 1 markus markus 4282948 Aug 10  2017 ./usr/lib/chromium-browser/libGLESv2.so
lrwxrwxrwx 1 markus markus 18 Mar 26  2018 ./usr/lib/arm-linux-gnueabihf/libGLESv2.so -> libGLESv2.so.2.0.0
-rw-r--r-- 1 markus markus 38184 Aug  4  2017 ./usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0_backup
lrwxrwxrwx 1 markus markus 32 Mar 26  2018 ./usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0 -> ../../../opt/vc/lib/libGLESv2.so
lrwxrwxrwx 1 markus markus 25 Mar 26  2018 ./usr/lib/arm-linux-gnueabihf/libGLESv2.so.2 -> libGLESv2.so.2.0.0_backup

$ find . -name libudev.so.1
./lib/arm-linux-gnueabihf/libudev.so.1

Возможно, я неправильно настроил некоторые параметры, особенно параметр rpath выглядит странно. Любой намек, что пошло не так?

...