我正在做一个GCC插件来判断C和头文件的编码风格. 我在编译时使用以下命令判断编码样式:
register_callback(plugin_info->base_name, PLUGIN_START_UNIT, start_unit_callback, NULL);
register_callback(plugin_info->base_name, PLUGIN_INCLUDE_FILE, include_file_callback, NULL);
第一行只判断C
个文件,第二行判断头文件(.h
).
但是当涉及到头球判断时,我会遇到性能问题.事实上,它还会判断系统标头!我希望它不会这样做. 这是GCC得到的头文件列表:
/usr/include/stdio.h
/usr/include/bits/libc-header-start.h
/usr/include/features.h
/usr/include/features-time64.h
/usr/include/bits/wordsize.h
/usr/include/bits/timesize.h
/usr/include/bits/wordsize.h
/usr/include/sys/cdefs.h
/usr/include/bits/wordsize.h
/usr/include/bits/long-double.h
/usr/include/gnu/stubs.h
/usr/include/gnu/stubs-64.h
/usr/lib/gcc/x86_64-pc-linux-gnu/13.1.1/include/stddef.h
/usr/lib/gcc/x86_64-pc-linux-gnu/13.1.1/include/stdarg.h
/usr/include/bits/types.h
/usr/include/bits/wordsize.h
/usr/include/bits/timesize.h
/usr/include/bits/wordsize.h
/usr/include/bits/typesizes.h
/usr/include/bits/time64.h
/usr/include/bits/types/__fpos_t.h
/usr/include/bits/types/__mbstate_t.h
/usr/include/bits/types/__fpos64_t.h
/usr/include/bits/types/__FILE.h
/usr/include/bits/types/FILE.h
/usr/include/bits/types/struct_FILE.h
/usr/include/bits/stdio_lim.h
/usr/include/bits/floatn.h
/usr/include/bits/floatn-common.h
/usr/include/bits/long-double.h
test.h
我自己做的唯一包括的是test.h
,所以它不能判断其他文件.
那么你知道一种解压所有系统文件的方法吗?
我try 跳过从/usr/
到/lib/
的所有包含项,但这不是一个好的做法.
我试图查看是否可以在编译的另一个时刻进行回调,但做得不好(它不判断标头).
感谢您阅读我的文章! 希望您能帮助我:)