Linux에서 s 파일을 생성하는 과정을 "컴파일"이라고 합니다. Linux의 컴파일러 gcc는 전처리된 ".i" 파일에 대해 구문 분석, 의미 분석 및 최적화를 수행하여 어셈블리 코드 파일(".s" 파일)을 생성합니다. 실행 구문은 "gcc -S filename.i - o 파일입니다. name.s"; 그런 다음 어셈블러는 어셈블리 코드 파일을 중간 개체 파일로 변환합니다. 마지막으로 링커 ld는 개체 파일을 필요한 정적 링크 라이브러리 및 동적 링크 라이브러리와 연결하여 실행 파일이 됩니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.
Linux에서 C 파일을 실행 파일로 컴파일하는 과정
gcc를 사용하여 C 파일을 실행 파일로 컴파일하는 과정은 사전 컴파일, 컴파일, 어셈블리, 링크의 네 단계로 나눌 수 있습니다.
1. 프리컴파일(.i
파일 생성) .i
文件)
预编译器cpp把源文件和相关的头文件(如实例代码中的头文件stdio.h)预编译成一个.i的文件。
执行的命令:gcc -E 文件名.c -o 文件名.i
预编译的作用:
a、处理所有的“#include”预编译指令
b、处理所有的"#define"指令,将代码中所有的"#define"删除,并展开所有的宏定义
c、处理所有的条件预编译指令,如#if #elif #else #ifdef #ifnodef #endif等
d、删除所有的注释
e、添加行号和文件名标识,以便产生错误时给出提示信息
2、编译(生成<span style="color: rgb(255, 0, 0);">.s</span>
文件)
编译器gcc把预处理后的文件进行语法分析、语义分析以及优化后生成汇编代码文件。
执行的命令:gcc -S 文件名.i -o 文件名.s
3、汇编(生成.o文件)
汇编器把汇编代码文件转换成中间目标文件
执行的命令:gcc -c 文件名.s -o 文件名.o
(注意:这里是小写的-c,而不是大写的-C,本人在此处踩坑,出现异常)
4、链接(生成可执行文件)
链接器ld把目标文件与所需要的所有的附加的目标文件(如静态链接库、动态链接库)链接起来成为可执行的文件
执行的命令:gcc 文件名.o -o 文件名
linux下编译c文件成为可执行文件的实例
1、准备C文件
在命令行模式下输入:vim hello.c
进入编辑模式,输入以下代码:
#include<stdio.h> int main(void){ printf("Hello World!\n"); return 0; }
首先点击ESC键退出编辑模式,然后输入:wq(注意输入的时候有冒号哦)回到命令行。
2、编译
编译C文件成可执行文件
执行的命令:gcc hello.c -o hello
输入ls命令,能看到当前文件夹下多了一个文件:hello
3、执行
执行:./hello
프리컴파일러 cpp는 소스 파일과 관련 헤더 파일(예: 예제 코드의 헤더 파일 stdio.h)을 .i 파일입니다.
실행된 명령: gcc -E filename.c -o filename.i
<span style="color: rgb(255, 0, 0);">.s🎜</span>
파일 생성 )🎜🎜🎜🎜컴파일러 gcc는 전처리된 파일에 대해 구문 분석, 의미 분석 및 최적화를 수행하여 어셈블리 코드 파일을 생성합니다. 🎜🎜실행된 명령: gcc -S 파일 이름.i -o 파일 이름.s
🎜🎜🎜3. 어셈블리(.o 파일 생성)🎜🎜🎜어셈블러는 어셈블리 코드 파일을 중간 파일로 변환합니다. 대상 파일 🎜🎜이 실행하는 명령: gcc -c filename.s -o filename.o
(참고: 대문자 -C가 아닌 소문자 -c입니다. 여기서는 아래로 내려갑니다. Pit, 예외 발생)🎜🎜🎜4. 링크(실행 파일 생성)🎜🎜🎜링커 ld는 대상 파일을 필요한 모든 추가 대상 파일(예: 정적 링크 라이브러리, 동적 링크 라이브러리)과 연결하여 실행 파일로 만듭니다🎜. 🎜실행된 명령: gcc 파일 이름.o -o 파일 이름
🎜🎜🎜🎜Linux🎜🎜🎜🎜🎜c 파일을 실행 파일로 컴파일하는 예 1. C 파일을 준비합니다🎜🎜🎜In 명령줄 모드에서 vim hello.c를 입력하세요. ) 명령줄을 반환합니다. 🎜🎜🎜2. Compile🎜🎜🎜C 파일을 실행 파일로 컴파일🎜🎜실행할 명령: gcc hello.c -o hello
🎜🎜ls 명령을 입력하면 현재 폴더에 여러 파일이 있습니다. 파일 만들기: hello🎜🎜🎜3. 🎜🎜🎜실행: ./hello
🎜🎜를 실행하여 hello World! 🎜🎜🎜🎜🎜관련 추천: "🎜Linux 비디오 튜토리얼🎜"🎜위 내용은 Linux에서 s 파일을 생성하는 프로세스를 무엇이라고 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!