gcc plugin(1)——gcc安装

本文分享了作者首次使用GCC Plugin进行trace生成的经历,对比了LLVMPASS的不足,详细记录了从环境搭建到解决各种依赖问题的过程,包括GMP、MPFR、MPC、flex、yacc等的安装配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

老板让我写生成trace的gcc plugin,在github上找了一份代码参考

https://github.com/GaloisInc/ivory-rtverification/tree/master/gcc-plugin/src

之前用LLVM PASS做这件事,但因为LLVM是IR级别插桩,丢失很多信息,导致生成的trace不准确,因此老板决定用gcc plugin实现插桩,保证信息完整。

因为完全不了解gcc plugin,找了个符合我需求的教程

http://libplugin.sourceforge.net/tutorials/simple-gcc.html

教程中步骤如下:

复制代码
svn -q checkout svn://gcc.gnu.org/svn/gcc/trunk my-gcc-dir

mkdir gcc.obj

mkdir gcc.bin

cd gcc.obj

my-gcc-dir/configure --prefix=path-to-gcc.bin/ --program-prefix=plugin- --enable-languages=c

make && make install; beep
复制代码

 

在configure那一步,提示gcc configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+

解决方法参考http://blog.csdn.net/stormbjm/article/details/9107831

在安装GMP时又提示缺少m4,上面的文章中也有解决方法。

 

将这些依赖项安装完毕后,重新configure,终于成功。

想一步一步来,没有按照教程里的把make和make install一起执行,先make,提示error找不到gengtype_lex.c,向上翻信息,发现是由于没有安装flex造成的,在安装flex的时候又提示找不到yacc,解决方法如下

sudo apt-get install byacc
sudo apt-get install flex

然后回到gcc make,漫长的等待……

转载于:https://www.cnblogs.com/milly-IT-blog/p/5162741.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值