首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何通过gcc版本3.4.5生成ac程序的控制流程图?

通过gcc版本3.4.5生成ac程序的控制流程图的步骤如下:

  1. 确保已经安装了gcc版本3.4.5,并且已经配置好了环境变量。
  2. 编写ac程序的源代码文件,保存为.c文件。
  3. 打开终端或命令提示符,进入到保存源代码文件的目录。
  4. 使用gcc命令编译源代码文件,生成可执行文件。命令格式如下:gcc -o output_file source_file.c其中,output_file是生成的可执行文件的名称,source_file.c是源代码文件的名称。
  5. 运行生成的可执行文件,确保程序能够正常执行。
  6. 安装Graphviz软件,用于生成控制流程图。Graphviz是一个开源的图形可视化工具,可以将文本描述的图形转换为图像。
  7. 在终端或命令提示符中,使用gcc命令的-g选项重新编译源代码文件,生成带有调试信息的可执行文件。命令格式如下:gcc -g -o output_file source_file.c
  8. 使用gcc命令的-fdump-tree-cfg选项重新编译源代码文件,生成控制流程图的文本描述文件。命令格式如下:gcc -fdump-tree-cfg output_file.c
  9. 使用dot命令将文本描述文件转换为图像文件。命令格式如下:dot -Tpng output_file.c.003t.cfg.dot -o output_file.png其中,output_file.c.003t.cfg.dot是生成的控制流程图的文本描述文件,output_file.png是生成的控制流程图的图像文件。
  10. 打开生成的图像文件,即可查看ac程序的控制流程图。

请注意,以上步骤中的命令和文件名仅供参考,实际使用时需要根据具体情况进行调整。此外,生成控制流程图的过程可能会因为gcc版本的不同而有所差异,建议参考gcc的官方文档或相关资料进行操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Ubuntu 18.04安装arm-linux-gcc交叉编译器两种方法(附下载地址)

sudo apt-get remove g++-arm-linux-gnueabihf 方法二:   arm-linux-gcc3.4.5 arm-linux-gcc4.3.2版本下载 链接:https...arm-linux-gcc-3.4.5-glibc-2.3.6目录复制到刚刚建好arm目录中,命令如下: sudo cp -r gcc-3.4.5-glibc-2.3.6 /usr/local/arm...配置环境变量和库变量,目的是以后可以在任何位置使用该交叉编译器,命令如下: sudo vi /etc/profile   7.用vi或者vim打开后,在文件最后添加两行,并输入以下代码:第一行是添加执行程序环境变量...,第二行是库文件路径 export PATH=$PATH:/usr/local/arm/gcc-3.4.5-glibc-2.3.6/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH...在 Terminal 输入以下命令输出版本信息: arm-linux-gcc -v   10.若有以下报错参考解决办法: 报错:bash: /usr/local/arm/4.2.2-eabi/usr

6.6K20

40.Linux应用调试-使用gdb和gdbserver

1.gdb和gdbserver调试原理 通过linux虚拟机里gdb,来向开发板里gdbserver发送命令,比如设置断点,运行setp等,然后开发板上gdbserver收到命令后,便会执行应用程序做相应动作...通过Makefile里arm-linux-gcc  -g 来,     -g:表示编译文件里包含gdb调试信息 1.2为什么需要调试信息编译文件?...比如读开发板应用程序变量a: 首先gdb通过应用程序带调试信息编译文件,来找出变量a存地址位置 然后将地址发送给开发板里gdbserver,来读出a地址值 2.安装gdb和gdbserver.../tools/gcc-3.4.5-glibc-2.3.6/bin 2) #cd /work/tools/gcc-3.4.5-glibc-2.3.6/     # grep "PTRACE_GETSIGINFO...gdb 6.也可以通过gdb+coredump来调试test_debug.c 当程序运行出错时,便会生成core文件,并将程序运行状况存到core中,也就是coredump,供给gdb来调试 6.1

3.7K80

python能开发arm_获得通用技能方法

看了很多资料介绍如何将python移植到嵌入式设备当中,但总感觉杂乱五章,还移植不成功,但是经过我多方摸索,成功探索出了一条阳光大道,供各位网友借鉴参考。...我采用方法可以成功移植python2.7以后所有版本。...第一步:从官网下载源码.并把解压放在/opt 第二步:在 /Python-3.4.5目录下新建一键移植脚本,并执行 内容如下:(执行完会报错某某模块内没安装,这个不耽误,可以直接忽视) #prepare...######################################## ———————————————————————————————————————————— 修改openssl.so库版本...发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183515.html原文链接:https://javaforall.cn

89310

精准测试及其工具(连载6)

3.2函数调用图 前置条件:函数调用图展示需要分析class文件,在被测程序插装编译时需要选择源码路径和class文件路径。 函数调用图可以给用户一系列关于软件系统整体信息。...、以及全局变量和静态变量分析结果等;同时,又给出了各个模块具体信息,包括:各模块源码行数和复杂度、测试覆盖率分析结果、扇入扇出信息,高亮显示一个模块及其所有相关模块,或者以任何一个模块为根生成局部子树等...3.3 控制流程图 前置条件:版本有数据,关联源码可在代码视图有显示源码,并且在控制流程图分支块有具体语句显示,有覆盖率数据,可在控制流程图显示当前覆盖到语句分支(即绿色显示覆盖) 控制流程图基础功能是展示函数控制流程...图56控制流程图 控制流程图展示方式区别于函数调用图调用模式展示方式,控制流程图主要以嵌套形式展现函数内部逻辑关系,这种方式更贴合代码逻辑流程。...在双向追溯中,控制流程图还可以通过颜色对每个程序块进行覆盖率标识,在缩略图中整个模块覆盖率非常直观。(背景色为绿色表示有测试用例覆盖到该块:以SC0覆盖为参考标准)。

56810

华为:既满足用户体验,又节省功耗App应用设计开发方法

如何基于LLVM编译器来开发构建一个静态代码分析工具,检测常见错误编码方式,深入浅出介绍如何通过编译器来检测持锁未释放场景;最后是机器学习在低功耗设计中应用展望,通过机器学习了解用户行为,在应用开发中既满足用户体验...,这段时间应用程序是可以被唤醒。...- 增加编译器扩展(pragma,_attribute_),进行额外编译检查和辅助代码生成。 - 基于编译器前端生成抽象语法树(AST)进行代码静态分析,以及基于AST重写进行自动化代码重构。...代码静态分析 代码静态分析中被分析程序不需要运行起来,不依赖执行环境,通过程序源代码或者某种形式中间代码进行分析来发现代码中缺陷,在大型软件分析中,是非常有价值。...符号执行 Symbolic Execution - 根据AST构造控制流程图CFG - 从CFG根节点开始,沿着图各条边进行语句虚拟执行,对所有可能Path都需要进行遍历,使用符号来表示结果,而不是向运行时记录实际

1.5K70

Autoconf编译配置

需要操作过程: 【修改configure.ac文件】 添加AM_INIT_AUTOMAKE宏 AM_INIT_AUTOMAKE是检查automake尝试Makefile时工具,传到这个宏里参数是要编译应用程序名称和版本号...#define,说到这里其实就很明确了,输出这个文件目的就是提供各种相关宏 添加编译链接需要程序 AC_PROG_CXX AC_PROG_CC AC_PROG_RANLIB 如果使用...AC_CONFIG_FILES宏中指定输出所有的Makefile文件,例如: 2)**原则2:**父目录需要包含子目录 3)**原则3:**Makefile.am中指明当前目录如何编译 编译安装...​ _SOURCES:对应gcc命令中源代码文件 ​ _LIBADD:编译链接库时需要链接其它库,对应gcc命令中*.a等文件 ​ _LDADD:编译链接程序时需要链接其他库,对应gcc命令中...,建议将图片保存下来直接上传 执行aclocal用于扫描configure.ac文件生成aclocal.m4,告诉autoconf如何找到新宏 执行autoheader,会生成一个config.h.in

1.1K50

自动生成Makefile全过程详解

在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例Makefile,这样就可以象常 见GNU程序一样,只要使用“..../helloworld 就可以看到Makefile被产生出来,而且可以将helloworld.c编译通过。 很简单吧,几条命令就可以做出一个符合惯例Makefile,感觉如何呀。...要生成configure文件,你必须告诉autoconf如何找到你所用宏。方式是使用aclocal程序生成aclocal.m4。...AM_INIT_AUTOMAKE(PACKAGE, VERSION) 这个宏是必须,它描述了我们将要生成软件包名字及其版本号:PACKAGE是软件包名字,VERSION是版本号。...五、结束语 通过上面的介绍,你应该可以很容易地生成一个你自己符合GNU惯例Makefile文件及对应项目文件。

1.7K20

php autoconf 配置,automake,autoconf使用详解

在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例 Makefile,这样就可以象常见 GNU程序一样,只要使用”....二.使用 环境 本文所提到 程序是 基于Linux发行版本:Fedora Core release 1,它包含了我们要用到 autoconf,automake..../helloworld 就可以看到Makefile被产生出来,而且可以将helloworld.c编译通过. 很简单吧,几条命令就可以做出一个符合惯例 Makefile,感觉如何呀....要生成configure文件,你必须告诉autoconf如何找到你所用 宏.方式是 使用aclocal程序生成 aclocal.m4. aclocal根据configure.in文件 内容,自动生成...AM_INIT_AUTOMAKE(PACKAGE, VERSION) 这个宏是 必须 ,它描述了我们将要生成 软件包 名字及其版本号:PACKAGE是软件包 名字,VERSION是 版本号.当你使用

67300

Linux中configure,make,make install到底在做些什么

m4 计算能力与任何一种编程语言等同,区别只体现在编程效率以及所编写程序运行效率方面。...然后是autoconf,是生成configure文件,configure是一个脚本,它能设置源程序来适应各种不同操作系统平台,并且根据不同系统来产生合适Makefile,从而可以使你源代码能在不同操作系统平台上被编译出来...# 根据 Makefile.am生成Makefile.in 网上找到一张总结很牛图,很全面。...Hello world,a new test 我们看看构建GNU程序如何按照规范来模拟这个过程 我们创建一个文件configure.ac,里面是一些宏,是接下俩autoconf来处理需要,然后交给...比如AC_INIT([helloworld],[0.1],[xxx@xxx.com])含义是autoconf生成名字,版本(这个可以自己定义),反馈邮箱, AM_INIT_AUTOMAKE是检查

3.8K30

Linux中configure,make,make install到底在做些什么

m4 计算能力与任何一种编程语言等同,区别只体现在编程效率以及所编写程序运行效率方面。...然后是autoconf,是生成configure文件,configure是一个脚本,它能设置源程序来适应各种不同操作系统平台,并且根据不同系统来产生合适Makefile,从而可以使你源代码能在不同操作系统平台上被编译出来...我写了一段非常简单c程序,就凑合着编译着用吧。...Hello world,a new test 我们看看构建GNU程序如何按照规范来模拟这个过程 我们创建一个文件configure.ac,里面是一些宏,是接下俩autoconf来处理需要,然后交给...比如AC_INIT([helloworld],[0.1],[xxx@xxx.com])含义是autoconf生成名字,版本(这个可以自己定义),反馈邮箱, AM_INIT_AUTOMAKE是检查

3.2K40

24种编程语言Hello World程序

Hello World,几乎是程序猿学习各种语言第一个程序。心血来潮,汇总并整理了下主流开发语言如何实现,包括大致快速了解下这门语言、开发、编译、环境搭建、运行、简单语言等,其实很多语言是有关联。.../lib/gcc/mingw32/3.4.5/specs   Configured with: ...../gcc-3.4.5-20060117-3/configure --with-gcc --with-gnu-ld --with-gnu-as --host=min   gw32 --target=mingw32...#与其他编程语言相比,PHP 是将程序嵌入到 HTML 文档中去执行,执行效率比完全生成 HTML 标记 CGI 要高许多。  ...说明: 尽管编译、运行都通过了,GUI 界面仍然不知道如何显示编译后结果,还是在命令行界面里运行 .FXP 文件才显示结果。

2.2K52

autotools及Yocto下通过autotools编译

AC_CONFIG_FILES([Makefile]) AC_OUTPUT 其中configure.ac标签说明: 标签 说明 AC_PREREQ声明autoconf要求版本AC_INIT 定义软件名称...、版本号、联系方式 AM_INIT_AUTOMAKE 必须要,参数为软件名称和版本AC_CONFIG_SCRDIR 宏用来侦测所指定源码文件是否存在, 来确定源码目录有效性.。...AC_PROG_CC 指定编译器,默认GCCAC_CONFIG_FILES 生成相应Makefile文件,不同文件夹下Makefile通过空格分隔。...最终通过Makefile.in生成Makefile文件,所以Makefile.am这个文件非常重要,定义了一些生成Makefile规则 。...rice@rice:~/rice-autotools$ 上述内容是在ubuntu上进行操作,接下来我们说说如何在arm架构板子进行运行。由于我目前系统构建环境是基于Yocto上

1.3K20

如何知道程序需要什么版本libclibstdc++

总结 一套系统折腾多套gcc、libc、libstdc++没必要,浪费时间。用对应版本系统编译对应版本二进制即可。一般软件对libc、libstdc++要求都不会太高,系统别太老一般都能跑。...如果因为libstdc++太旧(比如用了新c++库函数),因为libstdc++是跟着gcc,系统gcc也比较旧了,可以更新gcc版本,编译时需要执行用新gcc,但很可能编译时还回去去找老gcc...和老stdlibc++库,这就需要看程序怎么编译了,改下编译器、引用库路径等。...编译器用Libc版本: $ gcc -print-file-name=libc.so /usr/lib/gcc/x86_64-redhat-linux/8/../../../.....3.4.22 GLIBCXX_3.4.23 GLIBCXX_3.4.24 GLIBCXX_3.4.25 GLIBCXX_DEBUG_MESSAGE_LENGTH GA+GLIBCXX_ASSERTIONS 程序需要什么版本

1.2K30

iOS 覆盖率检测原理与增量代码测试覆盖率工具实现

这个文件中包含了 __gcov_flush() 函数,这个函数正是分发逻辑入口。接下来看看 __gcov_flush() 如何生成 .gcda 文件。...w=331&h=338&f=png&s=23643) 图7 输入 100 得到 .gcda 文件 通过控制流程图中节点出边执行次数可以计算出 BB 执行次数,**核心算法为计算这个 BB 所有出边执行次数...,不存在出边情况下计算所有入边执行次数**(具体实现可以参考 [gcov 工具源码](http://www.opensource.apple.com/source/gcc/gcc-5484/gcc/...熟悉 Git 同学知道,Git hooks 是开发者本地脚本,不会被纳入版本控制,如何通过一次配置就让这个仓库所有使用成员都能开启,是做好这件事一个难点。...结合前面覆盖率检测原理可以知道,**不能合并原因是生成控制流程图比原来多了两条边( .gcno 和旧 .gcda 也不能匹配了)**,反映在 .gcda 上就是数组多了两个数据。

1.5K20

C++11 gcc升级到5.2.0后报错:... version GLIBCXX_3.4.17 not found

https://blog.csdn.net/10km/article/details/50371044 我linux操作系统为centos6.5,为了能编译C++11程序,需要对gcc...编译器进行升级(centos6.5默认安装gcc编译器是4.4.7,支持C++11需要至少4.8.1)到gcc5.2.0,参照《【Linux】CentOS6.5 gcc升级方式》对编译器进行了升级,耗时两个多小时...5.2.0编译出so文件 上面的文件列表中可以看出gcc5.2.0已经编译出libstdc++.so.6.0.21,但在安装时(make install)并没有更新/usr/lib64/libstdc...++.so.6软链接,所以libstdc++.so仍然指向gcc4.4.7旧so文件。...再次查看libstdc++.so.6版本支持情况,已经支持到GLIBCXX_3.4.21了,满足要求 [root@t2-centos6 lib64]# strings libstdc++.so

1.2K10
领券