如何在makefile中使用cflow?

Posted

技术标签:

【中文标题】如何在makefile中使用cflow?【英文标题】:How to use cflow in makefile? 【发布时间】:2021-03-22 09:06:15 【问题描述】:

我想用 makefile 从一个对象生成调用图。我已经阅读了官方手册,在这个page,它描述了一种在makefile中使用cflow的方法,但不够具体。我尝试按照手册进行操作,但没有得到任何输出。

我做了什么(为了测试,我使用“cflow-1.6”源代码):

    将以下代码添加到对象根路径“.../cflow-1.6/”中的“Makefile.am”中:
EXTRA_DIST=cflow.rc

CFLOW_FLAGS=-i^s
cflow_CFLOW_INPUT=$(cflow_OBJECTS:.$(OBJEXT)=.c)
cflow.cflow: $(cflow_CFLOW_INPUT) cflow.rc Makefile
    CFLOWRC=$(top_srcdir)/src/cflow.rc \
     cflow -ocflow.cflow $(CFLOW_FLAGS) $(DEFS) \
                    $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
                $(CPPFLAGS) \
         $(cflow_CFLOW_INPUT)
    在对象根路径“.../cflow-1.6/”中执行“./configure”。 在对象根路径“.../cflow-1.6/”中执行“make”。

【问题讨论】:

运行make时需要指定cflow.cflow目标。 @Someprogrammerdude 我得到了输出,非常感谢!!! ^_^ 【参考方案1】:

在一些程序员哑巴的帮助下,我得到了结果。 流程这一步:

    在对象根路径“.../cflow-1.6/”中执行“./configure”。 将以下代码添加到“.../cflow-1.6/src/Makefile.am”:
EXTRA_DIST=cflow.rc

CFLOW_FLAGS=-i^s
cflow_CFLOW_INPUT=$(cflow_OBJECTS:.$(OBJEXT)=.c)
cflow.cflow: $(cflow_CFLOW_INPUT) cflow.rc Makefile
    CFLOWRC=$(top_srcdir)/src/cflow.rc \
     cflow -ocflow.cflow $(CFLOW_FLAGS) $(DEFS) \
                    $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
                $(CPPFLAGS) \
         $(cflow_CFLOW_INPUT)
    在对象路径“.../cflow-1.6/src”中执行“make cflow.cflow”。

然后我得到了输出文件“.../cflow-1.6/src/cflow.cflow”。

【讨论】:

以上是关于如何在makefile中使用cflow?的主要内容,如果未能解决你的问题,请参考以下文章

AspectJ——切入点语法之cflow与cflowbelow

cflow察看工程函数调用关系

Cflow使用详解

如何在 Makefile 中使用 shell 命令

如何在linux下写makefile

如何在 Microsoft VC 中使用这个 makefile?