我想知道是否有可能为特定的库函数生成编译器警告或错误。
例如,我一直在多线程程序上工作,每当我尝试使用像strtok这样的非线程安全函数(而不是strtok_r)时,我想得到编译器警告。
感谢。
答案 0 :(得分:6)
您想使用毒性编译指示:http://gcc.gnu.org/onlinedocs/gcc-3.2/cpp/Pragmas.html
#pragma GCC poison strtok
答案 1 :(得分:1)
您可以创建一个脚本,根据禁止符号列表检查生成的代码。例如。 this script是一个很好的起点;虽然您可能希望修改它以通过readelf或nm检索符号,而不是直接使用目标代码。