我想知道是否有可能爲特定庫函數生成編譯器警告或錯誤。爲庫函數定義編譯器警告/錯誤
例如,我一直在多線程程序上工作,每當我嘗試使用像strtok(而不是strtok_r)這樣的非線程安全函數時,我都會收到編譯器警告。
謝謝。
我想知道是否有可能爲特定庫函數生成編譯器警告或錯誤。爲庫函數定義編譯器警告/錯誤
例如,我一直在多線程程序上工作,每當我嘗試使用像strtok(而不是strtok_r)這樣的非線程安全函數時,我都會收到編譯器警告。
謝謝。
你想用毒藥編譯:http://gcc.gnu.org/onlinedocs/gcc-3.2/cpp/Pragmas.html
#pragma GCC poison strtok
您可以創建一個腳本,檢查對禁止符號列表生成的代碼。例如。 this script是一個很好的起點;儘管您可能希望修改它以通過readelf或nm檢索符號,而不是直接對目標代碼進行刷新。
+1,但這會導致錯誤而不是警告 – ouah 2012-02-14 11:21:50
我也有興趣產生錯誤。我更新了這個問題。 – ziu 2012-02-14 11:29:43
一個選項是'-werror',它會將所有警告提升爲錯誤。 – 2013-04-10 10:46:11