我是 Frama-C 的新手。我想在Windows环境下运行它。我的编译器是gcc,mingw。
我尝试运行价值分析教程中的相同示例,因为我对库头文件有问题。
我发现无法运行 frama-c 因为restrict关键词。它显示 string.h 文件中的错误
void * __cdecl memcpy(void * __restrict__ _Dst,const void * __restrict__ _Src,size_t _Size) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
当我手动添加#define时restrictSkeinProject 中的所有 *.c 文件
schneier.com/code/skein_NIST_CD_102610.zip
一切正常。手工完成并不是我想要的。
下一步是添加参数 -__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.
我能用它做什么?