gcc 3.4编译strace-4.6的话,会遇到这样的错误:
block.c: In function `block_ioctl':
block.c:271: error: `BLKTRACESTOP' undeclared
(first use in this function)
block.c:271: error: (Each undeclared identifier is reported only once
block.c:271: error: for each function it appears in.)
make[2]: *** [block.o] Error 1
make[2]: Leaving directory `/home/liangry/download/strace-4.6'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/liangry/download/strace-4.6'
make: *** [all] Error 2
问题不在第271行,而在于block.c前面的宏定义:
本意是如果没有定义BLKTRACESTART的话,定义BLKTRACESTART和BLKTRACESTOP,这是能够被gcc 4识别的,却不能够被gcc 3.4识别,所以需打上补丁:
在strace-4.6编译目录下,把上述内容保存为strace-4.6_gcc-3.4.patch,然后执行:
$ patch -p0 < strace-4.6_gcc-3.4.patch
patching file block.c
gcc-3.4编译strace-4.6
最新推荐文章于 2025-11-02 09:35:50 发布
本文详细介绍了使用 GCC 3.4 编译 Strace 4.6 时遇到的错误,包括错误原因分析和解决步骤,并提供了解决该问题的补丁文件。通过修改补丁文件中的宏定义,可以成功解决编译错误,完成 Strace 4.6 的 GCC 3.4 编译过程。
1600

被折叠的 条评论
为什么被折叠?



