• cmake给gcc添加编译前缀


    一般在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的目的。

  • 相关阅读:
    类的内部成员之五-----内部类
    接口的使用
    java中abstract关键字的使用
    Redis主从复制原理——哨兵模式(Sentinel)
    Redis主从复制原理——薪火相传
    Redis主从复制原理——一主二仆
    Git---使用Github实现团队内协作操作步骤
    Final知识点总结
    代码块知识点总结
    Linux学习计划
  • 原文地址:https://www.cnblogs.com/tongyishu/p/12619952.html
Copyright © 2020-2023  润新知