我试图获得交叉编译Raspberry PI工作在我的Ubuntu机器。
在我最初的尝试中,我使用的是ARM-Linuueabi编译器,它可以在Ubunturepo中找到。我把这个搞定了。我能够在cmake项目中构建所有的依赖项并使用交叉编译器。
然而,我认为我应该使用HF版本,所以我改用了ARM-linux-gnueabihf。然后我意识到这并不适用于Raspberry PI,因为它是ARMv 6。
我下载了工具链,但我并不真正理解如何“安装”它。我将文件解压缩到我的主目录中。目录结构如下所示:
/gcc-linearo-arm-linux-gnueabihf-raspbian
/arm-linux-gnueabihf
/bin
(contains g++, gcc, etc)
/lib
(contains libstdc++ library)
/bin
(contains arm-linux-gnueabihf-g++, arm-linux-gnueabihf-...)
/lib
(gcc lib stuff)
如果将目录更改为内部bin文件夹,则可以从终端编译测试程序,不会出现任何问题。
~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/
arm-linux-gnueabihf/bin$ g++ test.cpp -o test
然后,我尝试在外部bin文件夹中编译一个测试程序,其中包含工具的前缀版本。
~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin$
arm-linux-gnueabihf-g++ test.cpp -o test
但是,当我现在尝试使用编译器(从内部bin目录之外)时,它无法找到工具链附带的libstdc++共享库:
arm-linux-gnueabihf-gcc: error while loading shared libraries:
libstdc++.so.6: cannot open shared object file: No such file or directory.
此外,我希望能够使用编译器,而不必导航到bin目录。因此,我尝试将外部bin目录(因为我需要前缀版本)和两个lib目录添加到我的路径中:
export PATH=$PATH:~/tools/.../bin
export PATH=$PATH:~/tools/.../lib
export PATH=$PATH:~/tools/.../.../lib
但是,这会导致相同的错误。我应该如何“安装”工具链,以便我可以使用来自任何地方的工具链,就像我使用Ubunturepo的交叉编译器时一样?
发布于 2018-04-17 10:19:02
我不能让编译器(x64
版本)使用sysroot
直到我加入SET(CMAKE_SYSROOT $ENV{HOME}/raspberrypi/rootfs)
到pi.cmake
。
https://stackoverflow.com/questions/-100004422
复制相似问题