我正在尝试为在我的Ubuntu机器上工作的Raspberry Pi进行交叉编译。在最初的尝试中,我使用的是arm-linux-gnueabi编译器,该编译器可在Ubuntu存储库中找到。我得到了这个工作。我能够建立我的所有依赖关系,并在我的cmake项目中使用交叉编译器。但是,我相信我应该使用hf版本,因此我切换到了arm-linux-gnueabihf。然后我意识到这对Raspberry Pi不起作用,因为它是armv6。谷歌搜索后,我从GitHub找到了预构建的工具链。我下载了工具链,但是我不太了解如何“安装”它。我将文件提取到我的主目录。目录结构如下所示:/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)如果将目录更改为INNER bin文件夹,则可以从终端编译测试程序,而不会出现任何问题。~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/arm-linux-gnueabihf/bin$ g++ test.cpp -o test然后,我尝试在OUTER 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目录。因此,我尝试将OUTER bin目录(因为我需要带前缀的版本)和两个lib目录都添加到PATH中:export PATH=$PATH:~/tools/.../binexport PATH=$PATH:~/tools/.../libexport PATH=$PATH:~/tools/.../.../lib但是,这将导致相同的错误。我应该如何“安装”工具链,以便可以在任何地方使用该工具链,就像使用Ubuntu回购中的交叉编译器一样?
3 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
对于Windows主机,我强烈推荐本教程:
下载并安装工具链
将sysroot与您的RPi include / lib目录同步
编译你的代码
使用SmarTTY将可执行文件拖放到RPi
运行!
仅此而已!
预构建的GNU工具链可用于Raspberry,Beaglebone,Cubieboard,AVR(Atmel)等
- 3 回答
- 0 关注
- 702 浏览
添加回答
举报
0/150
提交
取消