⑴ make:arm-linux- conmand not found錯誤處理探討
make:arm-linux- conmand not found錯誤處理的總結
在超級用戶許可權下建立交叉編譯環境成功,但編譯是顯示
make:arm-linux- conmand not found
最終發現原因是:
修改makefile文件的CROSS_COMPILE =arm-linux-時在最後加入了空格。
總結:
makefile文件不是c語言文件,不允許自己添加空格,因為空格會當初
makefile的字元處理。即使要進行對齊,要使用tab鍵。
⑵ Ubuntu 嵌入式交叉編譯環境搭建
在一種計算機環境中運行的編譯程序,能編譯出在另外一種環境下運行的代碼,我們就稱這種編譯器支持交叉編譯,這個編譯過程就叫交叉編譯。簡單地說,就是在一個平台上生成另一個平台上的可執行代碼,而這種工具就是交叉編譯器(cross compiler)。
安裝前的絮叨,首先簡單介紹一下,所謂的搭建交叉編譯環境,即安裝、配置交叉編譯工具鏈。在該環境下編譯出嵌入式Linux系統所需的操作系統、應用程序等,然後再上傳到目標機上。 交叉編譯工具鏈是為了編譯、鏈接、處理和調試跨平台體系結構的程序代碼。對於交叉開發的工具鏈來說,在文件名稱上加了一個前綴,用來區別本地的工具鏈。例如,arm-linux-表示是對arm的交叉編譯工具鏈;arm-linux-gcc表示是使用gcc的編譯器。除了體系結構相關的編譯選項以外,其使用方法與Linux主機上的gcc相同,所以Linux編程技術對於嵌入式同樣適用。不過,並不是任何一個版本拿來都能用,各種軟體包往往存在版本匹配問題。例如,編譯內核時需要使用arm-linux-gcc-4.3.3版本的交叉編譯工具鏈,而使用arm-linux-gcc-3.4.1的交叉編譯工具鏈,則會導致編譯失敗。 那麼gcc和arm-linux-gcc的區別是什麼呢?區別就是gcc是linux下的C語言編譯器,編譯出來的程序在本地執行,而arm-linux-gcc用來在linux下跨平台的C語言編譯器,編譯出來的程序在目標機(如ARM平台)上執行,嵌入式開發應使用嵌入式交叉編譯工具鏈。
將壓縮包arm-linux-gcc-4.4.3.tar.gz存放在一個目錄下,這個目錄就是你等會解壓縮的目錄,以後這個目錄就不能隨便刪掉了,我的存放路徑是 /home/song/software,如下圖,記住這個路徑,等會還會用到。
使用tar命令:tar zxvf arm-gcc-4.4.3.tar.gz將software文件夾下的arm-linux-gcc-4.4.3.tar.gz解壓縮安裝到當前目錄下如下圖
通過下圖可以看到解壓成功了,並且解壓後的文件存放在了/home/song/software/opt/FriendlyARM/toolschain/4.4.3文件夾下,如下圖所示,這個存放路徑可得記住,如下圖
接下來配置系統環境變數,把交叉編譯工具鏈的路徑添加到環境變數PATH中去,這樣就可以在任何目錄下使用這些工具。記下上一步中的安裝路徑,使用命令:vim /etc/profile 編輯profile文件,添加環境變數。
在profile中最後一行添加:export PATH=$PATH:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin這個路徑就是那個bin目錄所在的路徑,可能你的不一樣,按照你實際的目錄填就可以了,如下圖32行, 編寫完退出並保存
使用命令:source /etc/profile 使環境變數生效
在終端上輸入命令arm-linux再按Tab鍵,可以看到下圖,說明環境變數設置成功了
使用命令:arm-linux-gcc -v 會出現下面的錯誤提示:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc: 15: exec: /home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found
意思是出現這種問題的原因是由於Ubuntu12.04用的是64位的,解決方法就是使用命令:sudo apt-get install ia32-libs 裝一些32位的庫。
待安裝完32位的庫之後,再使用命令:arm-linux-gcc -v,這一次就成功了,如下圖
驗證,編譯一個hello.c文件
使用命令:arm-linux-gcc hello.c -o hello 看是否編譯成功 可見成功生成了二進制文件。
總結:其實在安裝過程中,會出現各種各樣的錯誤,一般就是庫文件安裝不完整,大家可以把錯誤信息直接復制,到網上搜索一下,一般都能解決,這里希望大家在學習Linux時多一點耐心。
⑶ /home/linux-2.6.25.8/scripts/mksysmap: line 43:arm-linux-nm command not found 怎麼改
這個是因為你在那個文件中使用了arm-linux-nm這個命令,但是你的系統里並沒有這個命內令。
簡單來說,你打一容個顯示當前文件夾內容的 ls 命令,但是如果你系統里沒有這個命令,那麼系統也會提示command not found,當然也不會顯示當前文件夾內容。
這類問題常見於使用交叉編譯鏈編譯文件時,由於沒有正確設置編譯鏈,系統無法找到對應的命令。依照經驗,arm-linux-nm應該是交叉編譯指令。
改正方法應該是,檢查你的編譯工具設置和makefile文件(可能沒有),看二者與要編譯的目標文件是否匹配,檢查方法請參照你的板子手冊或者開發指導。正確設置後,重新執行或者編譯。
⑷ 用交叉編譯器(已經更改為arm-linux-gcc) 編譯內核;但是提示gcc沒有找到
提示 gcc:not command;就表示是gcc命令沒找到,這個和你的arm-linux-gcc沒關系,因為如果arm-linux-gcc找不到的話,會提示版arm-linux-gcc找不到的,所以你權就只能猜是不是host邊的gcc沒找到,然後在你的主機端安裝gcc開發包就可以了。
嵌入式一種重要的能力就是debug,自己鍛煉下吧,以後這種簡單的問題就能搞定了。
⑸ ubuntu系統系交叉編譯出現command not found錯誤,謝謝
1、核實 mips-openwrt-linux-uclibc-gcc 是否有執行許可權
chmod +x mips-openwrt-linux-uclibc-gcc
2、核實 mips-openwrt-linux-uclibc-gcc 是否為快捷鏈接,
1)其鏈接的gcc是否有執行許可權
2)其鏈接是否在正確的位置
3、核實PATH路勁是否添加正確(相信樓主是加正確了的)
根據樓主截圖,這個環境變數是有的,一般應該檢查1、2點
⑹ linux編譯內核出現arm-linux-gcc command not found ,用yum安裝,nothing to do ,繼續編譯,同樣的錯誤
首先呢,交叉昌寬編譯環境,不是通過伺服器來安裝的。
將交叉編譯環境解壓到指定目錄,然後設置好環境握迅滲
最後驗證安裝成功否:arm-linux-gcc -v 查看下版本
確認好才能進一步操作。
添加環境變數:export PATH=$PATH:/home/frankie/段脊usr/..../bin(直到添加到bin目錄才行)
⑺ Ubuntu14.04 用arm-linux-gcc 4.4.3 配置交叉編譯環境問題
安裝步驟
1、將壓縮包arm-linux-gcc-4.4.3.tar.gz存放在一個目錄下,這個目錄就是你等會解壓縮的目錄,以後這個目錄就不能隨便刪掉了