Linux中gcc编译步骤

article/2025/10/5 16:44:01

我们这里以C语言为例,看看C语言程序在Linux中编译执行的详细步骤

1.创建一个.c文件

 

2.写入一些简单的代码

 我们使用gcc -E filename.c -o filename.i 命令对程序先进行预处理:处理头文件、宏定义,接下来我们修改一下头文件,使用错误的头文件再看看效果

 

 我们可以看到这时编译预处理出现了问题,那我们修改为正确的头文件,将主函数改为错误的再看看效果。

 我们将主函数删除,执行gcc -E filename.c -o filename.i 可以看到,并没有报错。所以当我们编译程序的时候可以先使用 gcc -E filename.c -o filename.i看看自己的头文件有没有错误。但是同时要注意,这个命令并不会检查你其他地方的错误。

命令:gcc -S filename.i -o filename.s(编译:将预处理的文件进行处理,检查错误,生成汇编文件)

 使用gcc -S filename.i -o filename.s命令后我们可以清楚的看到,报错了。这个命令是生成汇编文件。

gcc -c filename.s  -o filename.o(汇编:将汇编文件编译生成机器语言 二进制文件)

 gcc  filename.o -o filename(链接:生成可执行文件)

 以上就是编译运行的四个步骤:预处理、编译、汇编、链接啦


http://chatgpt.dhexx.cn/article/5uwPOnIg.shtml

相关文章

Linux GCC常用命令

目录 一、示例一 1.简单编译 1.1预处理 1.2编译为汇编代码 1.3汇编 1.4连接 2.多个程序文件的编译 3检错 4库文件连接 二、示例二 1.准备hello.c 2.预处理 3.编译 4.汇编 5.链接 6.分析ELF文件 6.1ELF文件的段 6.2反汇编ELF 一、示例一 1.简单编译 创建文件mkd…

GCC编译过程及基本命令总结

一、GCC简介 GCC即GNU Compiler Collection,原本只是针对C语言的编译工具,现在已经变成了一个工具集,包含了C、C、JAVA等语言的集合体。 管理和维护:由GNU项目负责。 二、GCC对C、C的编译流程 (1) 预处理(Preproce…

Linux 下的 gcc 编译常用命令

gcc:Linux下的一款编译器。 gcc工作流程: 完整编译流程: 创建一个c语言源文件: gcc -E hello.c -o hello.i(头文件展开,进行源文件中的宏替换,注释过滤) gcc -S hello.i -o hello.…

GCC命令编译

1.GCC编译过程(原理如下,使用命令请见2) 从 hello.c 到 hello(或 a.out)文件, 必须历经 hello.i、 hello.s、 hello.o,最后才得到 hello(或a.out)文件,分别对应着预处理、编译、汇编和链接 4 个步骤&#…

gcc 命令详解及最佳实践

介绍 GCC(英文全拼:GNU Compiler Collection)是 GNU 工具链的主要组成部分,是一套以 GPL 和 LGPL 许可证发布的程序语言编译器自由软件,由 Richard Stallman 于 1985 年开始开发。 GCC 原名为 GNU C语言编译器&#…

使用GCC编译程序常用命令

一、编译器驱动程序 首先梳理一下源文件到可执行文件的整个过程,下面是两个源文件的组成main.c和sum.c // main.c int sum(int *a, int n); int array[2] { 1, 2 }; int main() {int val sum(array, 2);return val; }// sum.c int sum(int *a, int n) {int i, s…

matlab 反向二值化,MATLAB:图像二值化、互补图(反运算)(im2bw,imcomplement函数)...

图像二值化、反运算过程涉及到im2bw,imcomplement函数,反运算可以这么理解:原本黑的区域变为白的区域,白的区域变为黑的区域。 实现过程如下: close all;%关闭当前所有图形窗口,清空工作空间变量&#xff0…

图像处理Matlab阈值的设置imadjust(),graythresh(),im2bw()函数使用

1、imadjust()函数调节图像的对比度(若图像较暗,可用imadjust函数命令来调节图像的对比度) I1imadjust(I,stretchlim(I),[0;1]); % stretchlim(I2)自适应找到一个分割阈值向量来改变一幅图像的对比度 figure,imshow(I1); 2、matlab中DIP工具箱函数im2bw使用阈值&…

MATLAB--对于im2bw函数的优化

由于我在研究的是uint8图像,所以对于优化im2bw函数的形式为:im2bw(uint8[], T),不过其它形式也可以由类似思想导出。 测试代码:遍历8个图像得出时间 for n1:8cchar(str(n));fimread(c);testtime3%要测试的代码 end 算法一 tic fR…

MATLAB中将图像转换为二值图像im2bw

在MATLAB中将图像转换为二值图像,主要运用im2bw函数,涉及到一个灰度门槛的数值。 对于灰度图像 bwim2bw(I,level); level空着的话,默认是0.5。level一般使用graythresh函数来计算,至于graythresh函数中运用到的Otsus method&am…

matlab函数im2bw_图像分割之阈值分割(matlab)(转载)

转载自:https://blog.csdn.net/weixin_39824223/article/details/112249214 matlab函数im2bw_图像分割之阈值分割(matlab) weixin_39824223 2021-01-02 06:21:09 373 收藏 2 文章标签: matlab函数im2bw 图像分割是一种重要的…

MATLAB中im2bw函数-将图像转换为二值图像

matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成二值图像。所谓二值图像, 一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像…

4、im2bw 和 imbinarize 的区别与图像分割的综合应用

1. im2bw 和 imbinarize 的区别 将图片转换为二值图有两个函数,分别为: bw imbinarize(g); 与 bw im2bw(g);在 matlab2018 中建议用 imbinarize 来将图片转换为二值图,其参数必须为灰度图。 在 matlab2016 中,只有 im2bw 函…

理解Kalman滤波的使用

Kalman滤波简介 Kalman滤波是一种线性滤波与预测方法,原文为:A New Approach to Linear Filtering and Prediction Problems。文章推导很复杂,看了一半就看不下去了,既然不能透彻理解其原理,但总可以通过实验来理解其具…

卡尔曼滤波(Kalman Filtering)——(6)MATLAB仿真(保姆级)

MATLAB仿真 一、卡尔曼滤波的实际应用二、流程图三、执行过程四、程序代码五、仿真结果参考文献 一、卡尔曼滤波的实际应用 在这里依旧以前面提到的测量硬币为例进行MATLAB仿真。现有一枚硬币为了这枚硬币的直径,我们进行了多次测量,但是所使用的的尺子存…

Kalman Filter 遇到 Deep Learning : 卡尔曼滤波和深度学习有关的论文

突然心血来潮,想到卡尔曼滤波器是否能和深度学习结合。于是从谷歌学术上搜了一下,发现现在这方面的工作还没有太多结合。Top 期刊 TNNLS 2021 有一篇最新工作。ICLR 2020 出现一篇 Kalman Filter Is All You Need 的文章,但目前从开源的审稿意…

目标跟踪:卡尔曼滤波(Kalman Filter)到底是怎么工作的?

Kalman filter到底是怎么工作的? 本文主要参考的文章:https://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/,图片也基本来自上述博客 其实接触KF已经很久了,听过对应的课程,也对着公式进行过推导&#x…

卡尔曼滤波(kalman)

卡尔曼(kalman)滤波原理 kalman滤波器可以看做状态变量在由观测生成的线性空间上的射影。 如下状态空间模型描述的动态系统: (1) ​​​​​​​ ​​​​​​​ (2) 式中,k为离散时间&#xff…

卡尔曼滤波(Kalman filter)及预测

参考文章:https://blog.csdn.net/baidu_38172402/article/details/82289998; https://www.jianshu.com/p/2768642e3abf kalman滤波的作用:1.数据 滤波;2.数据预测 3.数据融合。其基本原理:是通过协方差 来进行加权。 1.什么是…

【Kalman】卡尔曼滤波Matlab简单实现

本节卡尔曼滤波Matlab实现是针对线性系统估计的,仅为简单仿真。 1.离散时间线性动态系统的状态方程 线性系统采用状态方程、观测方程及其初始条件来描述。线性离散时间系统的一般状态方程可描述为 其中,X(k) 是 k 时刻目标的状态向量,V(k)…