网站如何做付费,网站模板下载软件,全网最低价seo,wordpress the content一、gcc编译过程示意图 分析#xff1a;
hello程序是一个高级#xff23;语言程序#xff0c;这种形式容易被人读懂。为了在系统上运行hello.c程序#xff0c;每条#xff23;语句都必须转化为低级机器指令。然后将这些指令打包成可执行目标文件格式#xff0c;并以二进…一、gcc编译过程示意图 分析
hello程序是一个高级语言程序这种形式容易被人读懂。为了在系统上运行hello.c程序每条语句都必须转化为低级机器指令。然后将这些指令打包成可执行目标文件格式并以二进制形式存储器于磁盘中。 gcc常用选项 选项名 作用 -o 产生目标.i、.s、.o、可执行文件等 -c 通知gcc取消链接步骤即编译源码并在最后生成目标文件 -E 只运行C预编译器 -S 告诉编译器产生汇编语言文件后停止编译产生的汇编语言文件扩展名为.s -Wall 使gcc对源文件的代码有问题的地方发出警告 -Idir 将dir目录加入搜索头文件的目录路径 -Ldir 将dir目录加入搜索库的目录路径 -llib 链接lib库 -g 在目标文件中嵌入调试信息以便gdb之类的调试程序调试 举例说明
gcc -E hello.c -o hello.i预处理
gcc -S hello.i -o hello.s编译
gcc -c hello.s -o hello.o汇编
gcc hello.o -o hello链接
gcc hello.c -o hello直接编译链接成可执行目标文件
gcc -c hello.c或gcc -c hello.c -o hello.o编译生成可重定位目标文件二、gcc编译多文件
文件
hello_fn.h
hello_fn.c
main.c一次性编译
gcc hello_fn.c main.c –o newhello独立编译
gcc -Wall -c main.c -o main.o
gcc -Wall -c hello_fn.c -o hello_fn.o
gcc -Wall main.o hello_fn.o -o newhello 1. 测试代码
//hello_fn.c
#include stdio.h
#include hello_fn.hvoid hello(const char* name)
{printf(hello %s!!!\n, name);
}
//hello_fn.h
#ifndef _HELLO_FN_H
#define _HELLO_FN_Hvoid hello(const char* name);#endif
//main.c
#include hello_fn.hint main(void)
{hello(everyone);return 0;
}
输出结果
方法1 方法二