2012-02-14 84 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检索符号,而不是直接对目标代码进行刷新。