ubuntu安装gcc编译器出错 linux在线安装gcc命令步骤

配置终端的C开发环境在Ubuntu终端系统中开发依赖于一些命令行工具,与Windows下使用IDE集成开发环境不同。在Linux下,一般用gcc编译C语言代码,gcc可以通过管理工具安装,以Ubuntu 16.04为例。sudo apt-get install gcc为编译练习创建一个新的C语言程序。您可以使用vim或touc...

配置终端的C开发环境

在Ubuntu终端系统中开发依赖于一些命令行工具,与Windows下使用IDE集成开发环境不同。

在Linux下,一般用gcc编译C语言代码,gcc可以通过管理工具安装,以Ubuntu 16.04为例。

sudo apt-get install gcc

为编译练习创建一个新的C语言程序。您可以使用vim或touch命令来创建文件。

vim test.c / touch test.c#include <stdio.h>int ***in(){ printf("study gcc\n"); return 0;}

代码编辑完成后,使用gcc命令编译它。

$ lstest.c$ gcc -o test test.c

o参数指定可执行程序的名称,test.c是源文件。当编译完成时,一个可执行文件测试将出现在当前目录中。

$ lstest test.c

在命令行中,运行可执行程序,查看它是否会输出预期的内容:

$ ./teststudy gcc多文件编译

通常,程序由多个文件组成。编译多个文件时,需要将所有源文件发送给编译器。

以C语言为例,将test.c反汇编成两个文件,创建test2.c。

触摸test2.c

#include <strdio.h> void print_test(){ printf("study gcc\n"); }

test2.c中定义了一个名为print_test的函数,用来输出“学习gcc & # 8221。

直接在test.c中调用print_test即可:

测试. c

void print_test();int ***in(){ print_test(); return 0;}

按照以下步骤编译一个包含两个文件的程序:

gcc -o test test.c test2.c解析编译流程

编译可以进一步分为编译和链接两个阶段。

我们可以分阶段编译test.c,test2.c。源文件如下所示:

$ lstest.c test2.c

编译test2.c文件以生成test2.o目标文件:

$ gcc -c test2.c$ lstest2.c test2.o test.c

编译test.c文件以生成test.o目标文件:

$ gcc -c test.c$ lstest2.c test2.o test.c test.o

最后,链接两个目标文件,生成一个可执行程序:

$ gcc -o test test.o test2.o$ ./teststduy gcc关于分阶段编译

分阶段编译最大的好处就是可以做部分编译= = >:只编译修改过的部分。

在上面的例子中,test.c发生了变化,但是test2.c没有变化。然后,我们只需要编译test.c生成一个新的test.o目标文件,最后与test2.o文件链接生成一个新的可执行文件test。

可以节省编译test2.c的时间如果文件比较多,节省下来的编译时间会很长。

使用Makefile 自动编译

触摸Makefile

.DEFAULT_GOAL := runtest2.o: test2.c gcc -o test2.o -c test2.ctest.o: test.c gcc -o test.o -c test.ctest: test2.o test.o gcc -o test test2.o test.orun: test ./testclean: rm -f *.o rm -f test $ lsMakefile test2.c test.c$ ***kegcc -o test2.o -c test2.cgcc -o test.o -c test.cgcc -o test test2.o test.o./teststduy gcc

执行***ke命令。

$ lsMakefile test2.c test.c$ ***kegcc -o test2.o -c test2.cgcc -o test.o -c test.cgcc -o test test2.o test.o./teststduy gcc

Makefile可以大致理解为目标、依赖和构建指令。

默认情况下,Makefile定义的第一个目标是默认目标,默认目标在第一行中显式定义。由于没有变化,重新构建时会自动省略编译过程。

$ ***ke./teststudy gcc

定义用于清理编译结果的目标= = Clean:

$ lsMakefile test test2.c test2.o test.c test.o$ ***ke cleanrm -f *.orm -f test$ lsMakefile test2.c test.c

本文来自长街旧人投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/526249.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 04-30
下一篇 04-30

相关推荐

  • ubuntu安装gcc编译器出错 linux在线安装gcc命令步骤

    配置终端的C开发环境在Ubuntu终端系统中开发依赖于一些命令行工具,与Windows下使用IDE集成开发环境不同。在Linux下,一般用gcc编译C语言代码,gcc可以通过管理工具安装,以Ubuntu 16.04为例。sudo apt-get install gcc为编译练习创建一个新的C语言程序。您可以使用vim或touc

    2023-04-30 03:24:01
    396 0
  • matlab mbuild检测不到编译器 matlab mex

    摘要问题:我想打包。m文件转换成com组件供VB.NET调用,但是我遇到了“没有找到C++编译器”的问题网上能找到的各种方法我都试过了,都不成功!最后,我总结了以下方法:首先确保你的***tlab和vs安装正确,并且***tlab和vs的版本兼容(不兼容的情况自己下载***tlab安装目录下mexo

    2023-03-25 17:31:01
    1040 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信