3
我想交叉編譯一個簡單的Hello系統的世界程序。交叉編譯臂armv5tejl
我有以下信息:
uname -a
Linux (none) 2.6.32.28 #130 PREEMPT Mon Feb 18 13:54:18 CST 2013 armv5tejl GNU/Linux
cat /proc/cpuinfo
Processor : ARM926EJ-S rev 5 (v5l)
BogoMIPS : 421.06
Features : swp half fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant : 0x0
CPU part : 0x926
CPU revision : 5
Hardware : KeyASIC Ka2000 EVM
Revision : 0000
Serial : 0000000000000000
我想知道如何交叉編譯這個系統。我曾嘗試以下:
- 臂-Linux的gnueabi-GCC helloworld.c -march = -o的ARMv5的HelloWorld
- 臂-Linux的gnueabi-GCC helloworld.c -mcpu = ARM926EJ-S -o helloworld
但是當我嘗試運行可執行文件時,出現錯誤信息「command not found」。 我可能沒有正確編譯它,但我不知道使用哪些編譯選項給我所擁有的信息。
(我知道helloworld.c全部正常)。
ls -l helloworld
-rwxr-xr-x 1 0 0 8428 Jan 1 00:00 helloworld
which helloworld
which: applet not found
我把Busybox的armv5l上
busybox which helloworld
(no output)
LDD也是不繫統,我想編譯(其超越WifiSD卡)上。
ls -ln /lib/libc*
-rwxrwxrwx 1 0 0 244279 Jan 19 2012 /lib/libc.so.0
-rwxrwxrwx 1 0 0 13043 Jan 19 2012 /lib/libcrypt.so.0
-rwxr-xr-x 1 0 0 1251776 Jan 1 00:00 /lib/libcrypto.so.0.9.8
我試圖運行/lib/libc.so.0獲得版本信息,我得到一個分段錯誤。看來用-static編譯修復了這個問題。所以我想這是libc庫的問題。感謝您的幫助。
複製helloworld的目錄中目標系統內的以下命令的輸出是什麼? ls -l helloworld; 哪helloworld; ldd helloworld; – Balau
Balau,我已經用輸出更新了這個問題。 (無法將它們添加到此評論中。) –
我希望你試圖用'./helloworld'來運行它,如果是這樣,請嘗試使用'-static'標誌進行編譯。但警告,二進制將會更大。 – auselen