我正在嘗試為在我的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 關注
- 766 瀏覽
添加回答
舉報
0/150
提交
取消