gcc怎样编译 c语言pop,使用gcc编译器编译C语言步骤分析

gcc编译过程分步解析

0.简单的C程序web

hello.cwindows

#include

#include

int main()

{

printf("hello world!");

return 0;

}

1.预处理ide

此处使用gcc 编译器编译C代码,windows平台能够自行百度安装MinGW gcc【gcc的Windows平台移植版本】。svg

gcc -E hello.c -o hello.i

通过编译器编译后,.c结尾的源文件变成了 .i结尾的预处理文件。

预处理的主要做用是:

1.将 #define预约义的宏进行展开替换

2.删除注释

3.处理 #include包含指令,把包含的头文件插入代码中优化

2.编译ui

编译的做用是: 把预处理完成的文件进行语法分析且进行优化,并找出其中的错误。spa

gcc -S hello.i -o hello.s

hello.s汇编代码命令行

.file"hello.c"

.text

.def__main;.scl2;.type32;.endef

.section .rdata,"dr"

.LC0:

.ascii "hello world!\0"

.text

.globlmain

.defmain;.scl2;.type32;.endef

.seh_procmain

main:

pushq%rbp

.seh_pushreg%rbp

movq%rsp, %rbp

.seh_setframe%rbp, 0

subq$32, %rsp

.seh_stackalloc32

.seh_endprologue

call__main

leaq.LC0(%rip), %rcx

callprintf

movl$0, %eax

addq$32, %rsp

popq%rbp

ret

.seh_endproc

.ident"GCC: (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0"

.defprintf;.scl2;.type32;.endef

3.汇编code

汇编的做用是:汇编器是将汇编代码转化为机器能够执行的指令。xml

gcc -c hello.s -o hello.o

4.连接

连接的主要做用是:将目标代码转化为可执行代码。

gcc hello.o -o hello

总结

1.能够经过命令行一步一步将 .c结尾的源文件编译汇编连接成可执行文件,也能够略过中间生成的.i .s .o文件直接生成可执行文件:gcc hello.c -o hello

2.编译 -E 汇编 -S 连接 -c能够快速记忆,Esc是电脑键盘左上角的一个键,仅仅要记住S大写便可。

附图,助记忆

ca6848c39d7cab7bbd4032c10d04c74e.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux系统中,使用GCC编译C语言共享库的步骤如下: 1. 编写C语言源代码文件。首先,需要编写C语言源代码文件,其中包含了需要实现的共享库功能。可以使用任何文本编辑器来创建源代码文件,以`.c`为扩展名。 2. 编译源代码文件。使用GCC编译器编译源代码文件,将其转换为目标文件。使用以下命令进行编译: ``` gcc -c -fpic mylibrary.c ``` `-c`选项表示只编译源代码文件而不进行链接,`-fpic`选项表示生成与位置无关的代码,以便将其链接到共享库中。执行此命令后,将生成一个名为`mylibrary.o`的目标文件。 3. 创建共享库。使用GCC编译器将目标文件链接成一个共享库文件。使用以下命令进行链接: ``` gcc -shared -o libmylibrary.so mylibrary.o ``` `-shared`选项表示生成一个共享库,`-o`选项指定输出文件的名称。执行此命令后,将生成一个名为`libmylibrary.so`的共享库文件。 4. 安装共享库。将生成的共享库文件安装到系统的共享库目录中,以便其他程序可以使用。可以使用以下命令进行安装: ``` sudo cp libmylibrary.so /usr/lib/ ``` 此命令将共享库文件复制到`/usr/lib/`目录下,需要使用管理员权限来执行。 5. 使用共享库。完成安装后,其他程序可以使用刚创建的共享库了。在编译其他程序时,需要添加共享库的链接选项。例如,使用以下命令编译一个程序`myprogram.c`并链接共享库: ``` gcc -o myprogram myprogram.c -lmylibrary ``` `-lmylibrary`选项表示链接名为`libmylibrary.so`的共享库到程序中。 通过以上步骤,可以使用GCC编译C语言共享库并将其安装到系统中,以供其他程序使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值