我試圖將32位代碼移植到64位Linux機器上。在Linux上是否有用於64位positing警告的編譯器標誌。代碼從32位移植到64位
SUN有+ w2 -m64標誌。任何人都可以給我提供類似這個標誌的信息嗎?
謝謝你在前進,
我試圖將32位代碼移植到64位Linux機器上。在Linux上是否有用於64位positing警告的編譯器標誌。代碼從32位移植到64位
SUN有+ w2 -m64標誌。任何人都可以給我提供類似這個標誌的信息嗎?
謝謝你在前進,
這不正是你正在尋找的答案,但你可以嘗試在第一移植相int32_t取代許多int
越好。 另請看另一個答案。 (不,我不能發表評論,看來我得太少代表...)
嘗試gcc -Wall -Wconversion -Wpointer-arith -Wtype-limits -Wcast-qual
其實,閱讀gcc的手冊頁,有一噸的警告,其中一些可能會有所幫助只有當你的代碼不會爲你知道的事情產生大量洪水時,這實際上並不是問題。 -Wall,-pedantic和-Wextra是打開一堆警告的元標誌。 -Wall包含了許多重要的特性,當你嘗試使用64位構建不好的代碼時會發生這種情況。
-Werror
(將警告轉化爲錯誤)可能會有用,以避免在修復了一些錯誤但不是全部錯誤後必須修復make clean
。
在AMD64 linux上,int == int32_t。 long == int64_t。你的建議是把int改成unsigned int,如果有什麼會引入錯誤。 – 2009-12-09 23:48:19
好電話!我的意思是int32_t。 – 2009-12-10 07:57:14