【Linux】Linux C 编程

news2025/1/20 5:44:45

在 Windows 下编程首先就是安装对应的 IDE ,然后在 IDE 里面进行代码编写和编译,但是在 Linux 下,这两个部分是分开的,比如我们可以使用 vim 编辑器编写代码,然后用 gcc 编译器编译代码。Ubuntu 下有一些可以进行编程的工具,但大多只是编辑器,只能进行代码编辑,要想编译的话就需要用到 gcc 编译器。

设置 vim 编辑器

sudo vi /etc/vim/vimrc

在这里插入图片描述

默认 TAB 键为8个空格,设置 TAB 键为4个空格;

set ts=4

默认不显示行号,设置其显示行号;

set nu

在这里插入图片描述

编写 C 程序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

编译 C 程序

gcc 编译工具在安装 Ubuntu 的时候就已经安装好了;
在这里插入图片描述
gcc 命令

gcc [选项] [文件名字]
-c  只编译不链接为可执行文件,编译器将输入的.c 文件编译为.o 的目标文件;
-o  <输出文件名> 用来指定编译结束以后的输出文件名,默认编译出来的可执行文件名字为 a.out;
-g  添加调试信息,如果要使用调试工具(如 GDB)的话就必须加入此选项,此选项指示编译的时候生成调
    试所需的符号信息;
-O  对整个源代码编译、链接的的时候进行优化,这样产生的可执行文件执行效率就高;
-O2 比 -O 更幅度更大的优化,生成的可执行效率更高,但是整个编译过程会很慢;

在这里插入图片描述
编译错误警告
故意制造一些错误,看编译出来是什么效果;
在这里插入图片描述
在这里插入图片描述
改正错误,添加对 a、b 的定义;并补上在“ b = 4 ”后面缺少的分号,再次编译;
在这里插入图片描述
在这里插入图片描述
错误没有了,只是出现一个警告,是可以运行的,但是并没有输出 a + b 结果;
在这里插入图片描述
现在把它修改正确后再次编译;
在这里插入图片描述
在这里插入图片描述
可以看出,gcc 编译器在编译的时候,可以检查出错误和警告,并提示在哪一行,定位具体位置,方便去修改
gcc 编译器的编译流程是: 预处理、汇编、编译、链接。
预处理就是对程序中的宏定义等相关的内容先进行前期的处理;汇编是先将 C 文件转换为汇编文件,当 C 文件转换为汇编文件以后就是文件编译了;编译就是将 C 源文件编译成 .o 结尾的目标文件;编译生成的 .o 文件不能直接执行,还需要最后的链接,如果你的工程有很多个 C 源文件的话最终就会有很多 .o 文件,将这些 .o 文件链接在一起形成完整的一个可执行文件。示例的文件简单,因此可以直接使用 gcc 命令生成可执行文件,并没有先将 C 文件编译成 .o 文件,然后再链接在一起。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1571809.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux从入门到精通 --- 2.基本命令入门

文章目录 第二章&#xff1a;2.1 Linux的目录结构2.1.1 路径描述方式 2.2 Linux命令入门2.2.1 Linux命令基础格式2.2.2 ls命令2.2.3 ls命令的参数和选项2.2.4 ls命令选项的组合使用 2.3 目录切换相关命令2.3.1 cd切换工作目录2.3.2 pwd查看当前工作目录2.4 相对路径、绝对路径和…

主流验证码对比及选型

目录 一、什么是验证码二、验证码的作用三、验证码的类型四、验证码厂商1、 [腾讯云验证码](https://cloud.tencent.com/document/product/1110)1.1 验证方式1.2 费用 2、[阿里云验证码](https://www.aliyun.com/activity/security/wafcaptcha)2.1 验证方式2.2 费用 3、[顶象验…

分类预测 | Matlab实现TCN-BiGRU-Mutilhead-Attention时间卷积双向门控循环单元多头注意力机制多特征分类预测/故障识别

分类预测 | Matlab实现TCN-BiGRU-Mutilhead-Attention时间卷积双向门控循环单元多头注意力机制多特征分类预测/故障识别 目录 分类预测 | Matlab实现TCN-BiGRU-Mutilhead-Attention时间卷积双向门控循环单元多头注意力机制多特征分类预测/故障识别分类效果基本介绍模型描述程序…

SpringBoot配置文件加载的优先级顺序

SpringBoot配置文件加载的优先级顺序 1.按文件类型2.按路径比较3.按命令行参数设置 1.按文件类型 SpringBoot的配置文件可以分为.properties .yml .yaml 在同一路径下&#xff08;比如都在classpath下&#xff09;三者的优先级顺序是.properties> .yml> .yaml 2.按路径…

深度学习十大算法之深度Q网络(DQN)

一、简介 深度Q网络&#xff08;DQN&#xff09;是一种结合了深度学习和强化学习的算法&#xff0c;它在近年来成为了人工智能领域的一个热点。DQN首次被引入是在2013年&#xff0c;由DeepMind的研究人员开发。它标志着深度学习技术在解决高维度决策问题上的一大突破。 DQN的…

物联网实战--驱动篇之(一)EEPROM存储器(AT24C64)

目录 一、驱动概述 二、AT24C64简介 三、驱动编写 四、驱动应用 一、驱动概述 这是驱动篇的第一篇&#xff0c;所以先说明下驱动篇的作用和书写计划。之前的净化器项目已有提及&#xff0c;向ESP8266、SHT30这些都属于驱动设备&#xff0c;主芯片STM32是核心&#xff0c;相…

使用阿里云服务器搭建公司官网,需要多少钱?

阿里云服务器租用费用&#xff0c;搭建公司官网多少钱一年&#xff1f;搭建公司官网推荐2核4G5M带宽&#xff0c;优惠价199元一年&#xff0c;ECS u1实例企业客户专享&#xff0c;2核4G&#xff0c;5M固定带宽&#xff0c;80G ESSD Entry盘&#xff0c;活动页面 aliyunfuwuqi.c…

小坤二次元导航HTML源码

源码介绍 小坤二次元导航HTML源码&#xff0c;很好看的一个htmlの引导页/导航页&#xff01;需要的上&#xff01; 源码下载 小坤二次元导航HTML源码

『VUE』12. computed计算属性的使用 提高性能(详细图文注释)

目录 方法作为类似数据变量的写法处理数据返回的方法,优化性能使用computed例子总结 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 方法作为类似数据变量的写法 注意到了,方法没有return也可以以类似前面的数据变量的写法在模板…

.NET 设计模式—建造者模式(Builder Pattern)

简介 建造者模式&#xff08;Builder Pattern&#xff09;使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 建造者模式的核心思想就是将一个复杂对象的构建与其表示分离&#xff0c;让用户只…

【SCI绘图】【曲线图系列2 python】多类别标签对比的曲线图

SCI&#xff0c;CCF&#xff0c;EI及核心期刊绘图宝典&#xff0c;爆款持续更新&#xff0c;助力科研&#xff01; 本期分享&#xff1a; 【SCI绘图】【曲线图系列2 python】多类别标签对比的曲线图&#xff0c;文末附完整代码。 1.环境准备 python 3 import proplot as pp…

wordpress全站开发指南-面向开发者及深度用户(全中文实操)--创建新主题

前言 你可以在wordpress里面下载使用人家打包好的主题&#xff0c;但可能不是很好用&#xff0c;接下来就自己做一个自己的主题。你需要先找到xampp文件夹–htdocs–wordpress(我给更名为wplocal)–wp-content–themes 进入该文件夹之后你可以看到你之前下载导入的所有主题文件…

多态.Java

&#xff08;1&#xff09;什么是多态&#xff1f; 同类型的对象&#xff0c;表现出不同的形态。前者指父类&#xff0c;后者指不同的子类 说简单点&#xff0c;就是父类的同一种方法&#xff0c;可以在不同子类中表现出不同的状态&#xff0c;或者说在不同子类中可以实现不同…

【嵌入式硬件】三极管伏安特性曲线-饱和区

1.三极管伏安特性 三极管工作电路如下图所示。 三极管伏安特性曲线 书本上的描述: 截止区:三极管工作在截止状态,当发射结的电压Ube 小于 导通电压(0.6V-0.7V),发射结没有导通;集电结处于反向偏置,没有放大作用。 放大区:三极管的发射极加正向电压(…

[机器学习]人工智能为小米智架保驾护航

前言 小米汽车作为小米集团进军汽车行业的新尝试&#xff0c;吸引了广泛的关注。其结合了小米在科技和创新方面的优势&#xff0c;以及对智能出行的愿景&#xff0c;为汽车行业注入了新的活力。虽然小米汽车工厂还处于初期阶段&#xff0c;但其积极采用人工智能和机器学习等前沿…

Day84:服务攻防-端口协议桌面应用QQWPS等RCEhydra口令猜解未授权检测

目录 端口协议-口令爆破&未授权 弱口令爆破 FTP&#xff1a;文件传输协议 RDP&#xff1a;Windows远程桌面协议 SSH&#xff1a;Linux安全外壳协议 未授权案例(rsync) 桌面应用-QQ&WPS&Clash QQ RCE 漏洞复现 WPS RCE 漏洞复现 Clas* RCE 漏洞复现 知识点…

非关系型数据库--------------------Redis 群集模式

目录 一、集群原理 二、集群的作用 &#xff08;1&#xff09;数据分区 &#xff08;2&#xff09;高可用 Redis集群的作用和优势 三、Redis集群的数据分片 四、Redis集群的工作原理 五、搭建redis群集模式 5.1启用脚本配置集群 5.2修改集群配置 5.3启动redis节点 5…

AcWing 312. 乌龟棋(每日一题)

原题链接&#xff1a;312. 乌龟棋 - AcWing题库 小明过生日的时候&#xff0c;爸爸送给他一副乌龟棋当作礼物。 乌龟棋的棋盘只有一行&#xff0c;该行有 N 个格子&#xff0c;每个格子上一个分数&#xff08;非负整数&#xff09;。 棋盘第 1 格是唯一的起点&#xff0c;第…

如何使用 Midjourney?2024年最新更新

一&#xff1a;基础篇 1&#xff1a;注册 首先&#xff0c;你需要注册一个 Discord 账号&#xff0c;然后加入 Midjourney 的 Discord 服务器。或者去 Midjourney 的官网点击右下角的 Join the Beta&#xff1a; ​ 2&#xff1a;在 Discord 公共服务器里使用 注册并进入到…

信息系统项目管理师——第20章高级项目管理

本章是将第三版的第20章、第21章、第18章、第25章、第2章的PRINCE2进行了合并&#xff0c;精简和新增了部分知识。选择、案例都会考。从2023年上半年考情来看 选择题&#xff0c;考3-4分&#xff0c;基本是课本原话&#xff0c;但是知识点比较分散&#xff0c;需要多刷题&#…