首页 > 其他分享 >C语言开发流程与编译四部曲

C语言开发流程与编译四部曲

时间:2024-05-25 09:51:06浏览次数:17  
标签:文件 gcc 程序 C语言 编译 四部曲 main

1、编写代码

(1)文件格式要求

  • 源代码:.c
  • 头文件.h
    (2)编写过程要求使用英文字符
    (3)中英文切换需要注意全半角问题
    (4)字符编码问题(Linux:UTF-8)
    error:stray '\342' in program
    以上错误为中文及圆角问题

2、生成程序

(1)编译型语言:c/c++
(2)解释型语言:py
(3)若没有编译器(gcc)
sudo apt install gcc
sudo apt install build-essential #完整式安装
gcc -v #检验gcc是否安装成功
(4)生成程序
编译器名字 源代码文件名字 参数(不加-o参数 后续第四个参数也不用) 指定程序文件名字
gcc main.c #默认生成a.out
gcc main.c -o man

3、运行程序

  • 路径/程序文件名称
  • 可以通过pwd获取当前程序文件得位置路径或直接使用(.)代替当前位置
    ./main

4、编译四部曲

(1)预处理:头文件展开、宏替换、去掉注释
gcc -E main.c -o main.i
(2)汇编:生成汇编文件.s
gcc -S main.i -o main.s
(3)编译:转换为机器语言、二进制文件
gcc -c main.s -o main.o
(4)链接:转成二进制文件链接系统得库函数,第三方库
gcc main.o -o main
(5)多文件编译将会使用到工程管理工具cmake和qmake
sudo apt install make

标签:文件,gcc,程序,C语言,编译,四部曲,main
From: https://www.cnblogs.com/Demon-xing/p/18212062

相关文章

  • 【C语言】文件的编译链接和预处理
    文件的编译链接和预处理程序的翻译环境和执行环境翻译环境预处理(预编译)过程编译过程汇编过程链接过程运行环境预处理详解预处理符号预处理指令#define#define定义标识符#define定义宏#define替换规则#与###的使用##的使用带有副作用的宏参数宏与函数的对比宏的优势函......
  • aws jsii 基于js 实现跨语言交互的编译器
    jsiiaws开源的,让我们可以基于js实现跨语言交互的编译器,我们可以基于ts开发功能,然后通过编译器jsii可以实现其他语言的通信,目前支持C#,golang,java,pythonruntime参考架构如下图说明从架构上我们可以看出jsii的通信是基于了标准输入输出的处理,实际内部处理后边研究下参考资......
  • C语言 基本算术运算
    函数表达e的x次方:exp(x)x的y次方:pow(x,y)根号x:    sqrt(x)|x|:      abs(x)lnx:      log(x)lgx:     sinx:    sin(x)cosx:    cos(x)分离个位十位百位千位的数字千位:x/1000%10百位:x/100%10十位:x/10%10......
  • 初识C语言——数组详解
    C语言数组相关的详述,值得一看。文章目录一、数组的概念二、一维数组1.一维数组的创建和初始化1.1数组创建1.2数组的初始化2.数组的类型3.一维数组的使用3.1数组的打印3.2数组的输入4.⼀维数组在内存中的存储5.sizeof求数组元素个数三、二维数组1.二维数组的创建和......
  • 【华为OD】D卷真题 100分: 阿里巴巴找黄金宝箱(I) C语言代码实现[思路+代码]
    【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript-CSDN博客 JS、C、python、C++、Java代码实现:【华为OD】D卷真题100分:阿里巴巴找黄金宝箱(I)JavaScript代码实现......
  • 手把手教你编译属于自己的内核--->WSL-Linux子系统编译安装内核教程
    准备步骤前言:文章操作wsl子系统为ubuntu1.到LINUX内核官网下载最新版的内核Linux内核官网:Linux内核官网点击黄色按钮即可下载最新版本内核解压tarxvJflinux-6.9.1.tar.xz2.使用gitclone到github下载WSL2内核源码到终端输入​sudogitclone https://github.com/......
  • 编写C语言计算器:探索挑战与优化之路
    如果你对C语言编程充满兴趣,那么构建一个简易计算器可能是一个很好的练习机会。在本文中,我们将探讨如何使用C语言实现一个基本的计算器,并分享我们在这个过程中遇到的挑战及其解决方案。版本1.0如下:#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>voidmenu(){ p......
  • C语言中二维数组和数组名的二意性
    1.二维数组二维数组的本质,也是一维数组,一维数组中的每个元素,又是一个一维数组声明/定义:int[4]array[3]=>intarray[3][4];intmain(){inta[3][4];printf("&arr[0][0]=%p\n",&a[0][0]);//0x16f38b2e8printf("&arr[0]=%p\n",&a[0]);//0......
  • cmakelist 编译源码生成动态静态库并链接到项目
    当我们使用vscode编译c++代码时,需要加入第三方代码,而它没有库时。这时候我们就需要自己写一个Cmakelist编译成库,然后链接到自己的项目上。下面我以qt的qtpropertybrowser类为例,这个类并不在qt的标准库中,若是在qtcreator中使用,需要在pro引入该文件路径(qt安装目录里-\Qt\5......
  • 实验5 C语言指针应用编程
    1.实验任务1task1_1.c1#include<stdio.h>2#defineN534voidinput(intx[],intn);5voidoutput(intx[],intn);6voidfind_min_max(intx[],intn,int*pmin,int*pmax);78intmain()9{10inta[N];11intmin,max;1213......