2012-02-14 48 views
3

我想知道是否有可能爲特定庫函數生成編譯器警告或錯誤。爲庫函數定義編譯器警告/錯誤

例如,我一直在多線程程序上工作,每當我嘗試使用像strtok(而不是strtok_r)這樣的非線程安全函數時,我都會收到編譯器警告。

謝謝。

回答

6

你想用毒藥編譯:http://gcc.gnu.org/onlinedocs/gcc-3.2/cpp/Pragmas.html

#pragma GCC poison strtok 
+0

+1,但這會導致錯誤而不是警告 – ouah 2012-02-14 11:21:50

+0

我也有興趣產生錯誤。我更新了這個問題。 – ziu 2012-02-14 11:29:43

+0

一個選項是'-werror',它會將所有警告提升爲錯誤。 – 2013-04-10 10:46:11

1

您可以創建一個腳本,檢查對禁止符號列表生成的代碼。例如。 this script是一個很好的起點;儘管您可能希望修改它以通過readelf或nm檢索符號,而不是直接對目標代碼進行刷新。