1。公升級到gcce 4http://www.cnblogs.com/felixyeou/archive/2009/02/18/1392847.html
2.gcce 優化引數,關於3rd_mr和3rd_fp1生成的安裝包大小http://wiki.forum.nokia.com/index.php/%e5%85%b3%e4%ba%8e3rd_mr%e5%92%8c3rd_fp1%e7%94%9f%e6%88%90%e7%9a%84%e5%ae%89%e8%a3%85%e5%8c%85%e5%a4%a7%e5%b0%8f
3。gcce優化2 http://wiki.forum.nokia.com/index.php/gcce_compiler_options
4. arm架構及指令集http://zh.wikipedia.org/zh/arm%e6%9e%b6%e6%a7%8b
5。更改arm指令集
c:/s60/devices/nokia_n97_sdk_v1.0/epoc32/tools/compilation_config
原來:target_arch_option=-march=armv5t
改為:target_arch_option=-march=armv5te
7. arm指令集http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0100i/index.html
8.如何消除 -wno-ctor-dtor-privacy 警告
在/epoc32/tools/compilation_config/gcce.mk 檔案中將 "-wno-ctor-dtor-privacy"移動到 cpp_lang_option below
變成cc_warnings_control_option=-wall -wno-unknown-pragmas
cpp_lang_option=-x c++ -wno-ctor-dtor-privacy
9。n97 sdk編譯彙編,改arm_instruction_set=-marm為arm_instruction_set= 就可。應用程式能為不同的用途進行多平台編譯。最主要的兩個平台wins和marm,wins為模擬器服務,marm是多處理器的arm平台(實時系統)。
另外i,winc平台是windows下的連線程式引擎。在symbian os 6及以後的版本中,不再支援marm。它擴充套件到了armi, arm4, and thumb。 arm7 and arm9平台支援arm4 and thumb兩套指令。arm4 使用32位的指令,它能生成更快的**。 thumb使用16的指令,它能生成更小的,但相對慢的應用。
arm4編譯的**不能linkthumb編譯的**,反之亦然。使用armi編譯的**能用link到thumb和arm4編譯的**。對於第三方開發者來說,armi是乙個安全的選擇。
每套平台可能提供2套變數,udeb和urel,分別對應debug和release模式,特別要注意的是udeb和urel都是unicode編譯。
雖說**完全一樣,wins編譯的應用在arm架構上完全不能執行。
10.編譯錯誤「cannot find -lsupc++http://blog.csdn.net/actual_/archive/2009/11/11/4799963.aspx
11.在vista系統上搭建symbian開發環境的實踐http://blog.csdn.net/sharetop/archive/2008/02/23/2115115.aspx
編譯器優化
常量摺疊 a 1 2 由於結果可預見,編譯器直接生成a 3 常量傳播a 1 若後續 沒有更改a,則編譯器將a直接用其值1代替 減少變數 對於x和y的比較,可以轉換成if i j x i2 y j 2 if x y 複寫傳播 類似於常量長傳,不過傳播的是變數 若後續 未修改a的值,則編譯器用m代替a ...
編譯器優化 乘法優化
由這個想到的 31乘以某個數能不能寫成這個數乘以2的次冪 再減去這個數。用數學語言表達一下就是 設這個數為x 31 x x 2 n x 這個等式是否存在,如果存在,求n的值 那我們計算一下,31 2 n 1 得2 n 32 得n 5 也就是說存在那麼乙個n使得,31乘以某個數的結果等於這個數乘以2的...
編譯器優化問題
今天遇一程式,unsigned char a,b,c a 0x89 b a 1 c a b 在單步除錯的時候,觀察數值發現b的值為0,分析b的值應當為0x44,百思不得其解,通過檢視其彙編語句,發現問題所在。彙編語句如下 mov r7,tmod 0x89 mov a,r7 clr c rrc a a...