夥計, 我有一個項目,我已經爲ARM Cortex-A8處理器編譯。我正在使用GCC來做到這一點。目前我的可執行文件的大小是220.1 KB。現在我修改我的makefile,我添加了標誌-mthumb
,Makefile行看起來有點像這樣 -ARM Thumb模式:代碼大小不減
gcc -mcpu=cortex-a8 -mthumb -marm -mfloat-abi=softfp -mfpu=neon
我做這改變了我所有的makefile,我建我的項目,但我得到最後還是可執行繼續爲220.1 KB。
我做了一個更改變我的命令行,我再一次增加了-mthumb-interwork選項
gcc -mcpu=cortex-a8 -mthumb -mthumb-interwork -marm -mfloat-abi=softfp -mfpu=neon
我得到同樣大小的可執行220.1 KB。我在做這件事時錯過了什麼?
我寫了一個小程序,找到最小的兩個數的和我使用下面的命令行
gcc main.c -o main
我得到一個8.5 KB可執行文件編譯它
接下來,我做了
gcc -mthumb main.c -o main
我仍然得到一個8.5 KB的可執行文件。
這裏有什麼問題嗎?
我做了一個cat /proc/cpuinfo
來查看我的處理器是否真的支持thumb,並且我看到它的確支持。 我得到 -
Processor: ARMv7 Processor rev 5 (v7l)
Features: swp half thumb fastmult vfp edsp neon vfpv3
....
....
'-marm'是'-mthumb'的計數器,'gcc'是最後一個選項;這就是爲什麼* dwelch的答案有效。 – 2014-04-10 15:33:08