我是 Frama-C 的新手。我想在 Windows 环境下运行它。我的编译器是 gcc,mingw。
我已经尝试从价值分析教程中运行相同的示例,因为我遇到了库头文件的问题。
我发现由于限制关键字而无法运行 frama-c 。它在 string.h 文件中显示错误
void * __cdecl memcpy(void * __restrict__ _Dst,const void * __restrict__ _Src,size_t _Size) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
当我手动将 #define限制添加到 SkeinProject 中的所有 *.c 文件时
schneier.com/code/skein_NIST_CD_102610.zip
一切正常。通过手工完成不是我想要的。
下一步是添加参数 -D__restrict__
frama-c -cpp-extra-args=-D__restrict__ -main=Init -val SHA3api_ref.c
[kernel] preprocessing with "gcc -C -E -I. -D__restrict__ SHA3api_ref.c"
../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/include/string.h:41:[kernel] user error: syntax error
[kernel] user error: skipping file "SHA3api_ref.c" that has errors.
[kernel] Frama-C aborted because of an invalid user input.
我还生成了预编译的 *.i 文件,但错误仍然相同。
gcc -E -D__restrict__ SHA3api_ref.c >SHA3api_ref.i
frama-c -main=Init -val SHA3api_ref.i
../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/include/string.h:41:[kernel] user error: syntax error
[kernel] user error: skipping file "SHA3api_ref.i" that has errors.
[kernel] Frama-C aborted because of an invalid user input.
我能用它做什么?