我有一些问题要决定如何告诉Frama-C 使用哪些包含文件。我通常添加选项:
-cpp-extra-args="-I $(frama-c -print-path)/libc"
为了获得 Frama-C 的标准规格。但我经常需要一些不在 Frama-C 库中的东西。
例如,我要分析的源文件之一使用了定义在 中的宏<sys/wait.h>
,但因为 Frama-C 有自己的frama-c/libc/sys/wait.h
,所以不包括 gcc 文件。不幸的是,Frama-C 没有定义宏,并且定义最终丢失了。当然,我不想更改源文件!
my_libc/sys/wait.h
我正在考虑使用包含 Frama-C 文件的文件构建一个本地目录,并且我可以在其中复制 GCC 文件中缺少的内容。
然后我会使用:
-cpp-extra-args="-I my_libc -I $(frama-c -print-path)/libc"
但我对我的解决方案有点担心,因为从 GCC 包含文件中提取定义可能非常棘手......
你怎么看?这似乎是个好主意?您对更好的组织有什么建议吗?