2014-07-04 39 views
4

一個項目需要在gcc4.1.2(公司的服務器)和gcc 4.7.3+(桌面linux系統)下編譯,並且有一些問題:
1。 gcc 4.1.2沒有Wno-unused-resultWno-unused-but-set-variable。我試圖用Wno-unused替換後兩者,但仍然生成一個忽略內建函數錯誤的返回值。
2. gcc 4.1.2中也沒有Wno-narrowing,還有什麼我可以使用的?
我該怎麼做才能讓他們都快樂?如何同時滿足gcc4.1.2和gcc 4.7.3

+1

你可以修改代碼,使警告以無害的方式消失嗎? – Yakk

+0

修復代碼聽起來像是一個計劃,或者將服務器升級爲不是* 7-1/2年前的工具鏈。當然,您可以將'gcc --version'的結果傳遞給make文件中的配置屬性,並確定要使用哪個CCFLAGS,但這會很快*。 – WhozCraig

+0

你有權訪問makefile嗎? –

回答

1

我建議你處理makefile中兩個版本之間的差異。如果GCC版本支持GCC版本,則可以檢測到GCC版本並標準地包含額外的警告選項。這將有助於公司最終前進。

修復代碼是值得的,但不要使用警告。他們是告訴你首先有問題的事情(否則你不會啓用他們的權利?)

無論如何,你可以通過將結果投給void系統函數來獲得未使用的警告編譯器很高興你應該忽略:

(void)builtin(...);