A. 我輸入arm-elf-gcc -o2 -c helloworld.c沒有提示錯誤,也沒生成目標文件,怎麼辦
解壓剛剛的那個壓縮包後,你設置的環境變數有問題,或者是許可權沒有設置正確導致的。
請按照如下步驟試驗:(教程是死的,具體的目錄和環境變數的目錄可以由你自己來改變,但是你的環境變數所指的目錄一定要正確指向你的配置文件上。)
1.下載安裝cygwin
2.將下載下來的leeos_tools_for_cygwin.tar.gz放到H:\cygwin\usr中,並用命令cd /usr和tar zxvf leeos_tools_for_Cygwin.tar.gz解壓
3.設置環境變數,依次輸入以下三條命令
echo "PATH=\$PATH:/usr/leeos_tools_for_Cygwin/bin">>/etc/profile
echo "PATH=\$PATH:/usr/leeos_tools_for_Cygwin/libexec/gcc/arm-elf/4.4.2">>/etc/profile
echo "PATH=\$PATH:/usr/leeos_tools_for_Cygwin/arm-elf/bin">>/etc/profile
然後重啟cygwin
4.用chmod 777命令把剛才設置的三個目錄下的所有exe文件都設置一下許可權。(肯定有類似批處理的那種命令可以一下把所有exe文件都設置完,但是我對linux環境不怎麼熟悉,所以在這里還是用的最原始的辦法一個一個改,還好一共也沒幾個exe文件)
5.把skyeye.exe復制到H:\cygwin\usr\leeos_tools_for_Cygwin\bin中。這樣就算把環境配置完了。
知識拓展:關於arm-linux-gcc命令
Linux程序員可以根據自己的需要讓 GCC在編譯的任何階段結束,以便檢查或使用編譯器在該階段的輸出信息,或者對最後生成的二進制文件進行控制,以便通過加入不同數量和種類的調試代碼來為今後的調試做好准備。和其它常用的編譯器一樣,GCC也提供了靈活而強大的代碼優化功能,利用它可以生成執行效率更高的代碼。 以文件example.c為例說明它的用法
0. arm-linux-gcc -o example example.c
不加-c、-S、-E參數,編譯器將執行預處理、編譯、匯編、連接操作直接生成可執行代碼。 -o參數用於指定輸出的文件,輸出文件名為example,如果不指定輸出文件,則默認輸出a.out 1. arm-linux-gcc -c -o example.o example.c
-c參數將對源程序example.c進行預處理、編譯、匯編操作,生成example.0文件
去掉指定輸出選項"-o example.o"自動輸出為example.o,所以說在這里-o加不加都可以 2.arm-linux-gcc -S -o example.s example.c
-S參數將對源程序example.c進行預處理、編譯,生成example.s文件 -o選項同上
3.arm-linux-gcc -E -o example.i example.c
-E參數將對源程序example.c進行預處理,生成example.i文件(不同版本不一樣,有的將預處理後的內容列印到屏幕上)