码迷,mamicode.com
首页 > 其他好文 > 详细

cmake给gcc添加编译前缀

时间:2020-04-02 16:19:33      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:程序   cmak   color   style   简单的   global   wrapper   inux   没有   

一般在Linux的环境中编译程序用的都是gcc,举个最简单的例子:gcc a.c,当执行该条命令时就会产生a.out的可执行文件。
但如果我们想改变gcc的行为,而不重新生成一个新的gcc,我们可以怎么做呢?是的,我们可以用命令将其进行包裹,比如:lltwrapper gcc。
其中,lltwrapper可以是一个脚本,也可以是一个二进制的可执行程序,其作用是用来改变gcc的行为,从而达到插桩或改变编译流程的目的。

如果直接在终端进行编译,那么很好解决,直接在gcc的前面加上相应的命令即可。可是现在的工程大多都是用cmake构建的,又该如何解决?
我尝试过用 export CC=lltwrapper /usr/bin/gcc
      或 export CC="lltwrapper /usr/bin/gcc"
      或 SET(CMAKE_C_COMPILER lltwrapper /usr/bin/gcc)
      或 SET(CMAKE_C_COMPILER "lltwrapper /usr/bin/gcc")
进行解决,但都没有收到预期的效果:均会导致cmake报错。

正确的做法是使用 set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE lltwrapper) 来设定gcc的编译前缀。
这样,cmake生成Makefile时就能够正确地将lltwrapper加在合适的位置,从而达到包裹gcc的目的。

cmake给gcc添加编译前缀

标签:程序   cmak   color   style   简单的   global   wrapper   inux   没有   

原文地址:https://www.cnblogs.com/tongyishu/p/12619952.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!