源代码到可执行文件的生成过程

本文详细介绍了源代码转化为可执行文件的过程,包括编译阶段将C源代码转换为汇编代码,汇编阶段将汇编代码转换为机器码,以及链接阶段将多个目标文件整合为最终的可执行文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源代码到可执行文件的生成过程

1.流程

•编译:由C语言代码生成汇编代码

•汇编:由汇编代码生成机器码

•链接:将多个机器码的目标文件链接成一个可执行文件

2.示例

2.1 C源代码:(test.c )

#include <stdio.h>

int main() {
	printf("hellod world!");
	return 0;
}

2.2 汇编代码:(test.s)

	.file	"test.c"
	.text
	.section	.rodata
.LC0:
	.string	"hellod world!"
	.text
	.globl	main
	.type	main, @function
main:
.LFB0:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	leaq	.LC0(%rip), %rdi
	movl	$0, %eax
	call	printf@PLT
	movl	$0, %eax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

2.3 机器码:(test.o)

  Offset: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 	
00000000: 7F 45 4C 46 02 01 01 00 00 00 00 00 00 00 00 00    .ELF............
00000010: 01 00 3E 00 01 00 00 00 00 00 00 00 00 00 00 00    ..>.............
00000020: 00 00 00 00 00 00 00 00 20 03 00 00 00 00 00 00    ................
00000030: 00 00 00 00 40 00 00 00 00 00 40 00 0E 00 0D 00    ....@.....@.....
00000040: F3 0F 1E FA 55 48 89 E5 48 8D 3D 00 00 00 00 B8    s..zUH.eH.=....8
00000050: 00 00 00 00 E8 00 00 00 00 B8 00 00 00 00 5D C3    ....h....8....]C
00000060: 68 65 6C 6C 6F 64 20 77 6F 72 6C 64 21 00 00 47    hellod.world!..G
00000070: 43 43 3A 20 28 55 62 75 6E 74 75 20 39 2E 33 2E    CC:.(Ubuntu.9.3.
00000080: 30 2D 31 37 75 62 75 6E 74 75 31 7E 32 30 2E 30    0-17ubuntu1~20.0
00000090: 34 29 20 39 2E 33 2E 30 00 00 00 00 00 00 00 00    4).9.3.0........
000000a0: 04 00 00 00 10 00 00 00 05 00 00 00 47 4E 55 00    ............GNU.
000000b0: 02 00 00 C0 04 00 00 00 03 00 00 00 00 00 00 00    ...@............
000000c0: 14 00 00 00 00 00 00 00 01 7A 52 00 01 78 10 01    .........zR..x..
000000d0: 1B 0C 07 08 90 01 00 00 1C 00 00 00 1C 00 00 00    ................
000000e0: 00 00 00 00 20 00 00 00 00 45 0E 10 86 02 43 0D    .........E....C.
000000f0: 06 57 0C 07 08 00 00 00 00 00 00 00 00 00 00 00    .W..............
00000100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000110: 01 00 00 00 04 00 F1 FF 00 00 00 00 00 00 00 00    ......q.........
00000120: 00 00 00 00 00 00 00 00 00 00 00 00 03 00 01 00    ................
00000130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000140: 00 00 00 00 03 00 03 00 00 00 00 00 00 00 00 00    ................
00000150: 00 00 00 00 00 00 00 00 00 00 00 00 03 00 04 00    ................
00000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000170: 00 00 00 00 03 00 05 00 00 00 00 00 00 00 00 00    ................
00000180: 00 00 00 00 00 00 00 00 00 00 00 00 03 00 07 00    ................
00000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000001a0: 00 00 00 00 03 00 08 00 00 00 00 00 00 00 00 00    ................
000001b0: 00 00 00 00 00 00 00 00 00 00 00 00 03 00 09 00    ................
000001c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000001d0: 00 00 00 00 03 00 06 00 00 00 00 00 00 00 00 00    ................
000001e0: 00 00 00 00 00 00 00 00 08 00 00 00 12 00 01 00    ................
000001f0: 00 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00    ................
00000200: 0D 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00    ................
00000210: 00 00 00 00 00 00 00 00 23 00 00 00 10 00 00 00    ........#.......
00000220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000230: 00 74 65 73 74 2E 63 00 6D 61 69 6E 00 5F 47 4C    .test.c.main._GL
00000240: 4F 42 41 4C 5F 4F 46 46 53 45 54 5F 54 41 42 4C    OBAL_OFFSET_TABL
00000250: 45 5F 00 70 72 69 6E 74 66 00 00 00 00 00 00 00    E_.printf.......
00000260: 0B 00 00 00 00 00 00 00 02 00 00 00 05 00 00 00    ................
00000270: FC FF FF FF FF FF FF FF 15 00 00 00 00 00 00 00    |...............
00000280: 04 00 00 00 0C 00 00 00 FC FF FF FF FF FF FF FF    ........|.......
00000290: 20 00 00 00 00 00 00 00 02 00 00 00 02 00 00 00    ................
000002a0: 00 00 00 00 00 00 00 00 00 2E 73 79 6D 74 61 62    ..........symtab
000002b0: 00 2E 73 74 72 74 61 62 00 2E 73 68 73 74 72 74    ..strtab..shstrt
000002c0: 61 62 00 2E 72 65 6C 61 2E 74 65 78 74 00 2E 64    ab..rela.text..d
000002d0: 61 74 61 00 2E 62 73 73 00 2E 72 6F 64 61 74 61    ata..bss..rodata
000002e0: 00 2E 63 6F 6D 6D 65 6E 74 00 2E 6E 6F 74 65 2E    ..comment..note.
000002f0: 47 4E 55 2D 73 74 61 63 6B 00 2E 6E 6F 74 65 2E    GNU-stack..note.
00000300: 67 6E 75 2E 70 72 6F 70 65 72 74 79 00 2E 72 65    gnu.property..re
00000310: 6C 61 2E 65 68 5F 66 72 61 6D 65 00 00 00 00 00    la.eh_frame.....
00000320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000360: 20 00 00 00 01 00 00 00 06 00 00 00 00 00 00 00    ................
00000370: 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00    ........@.......
00000380: 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000390: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000003a0: 1B 00 00 00 04 00 00 00 40 00 00 00 00 00 00 00    ........@.......
000003b0: 00 00 00 00 00 00 00 00 60 02 00 00 00 00 00 00    ........`.......
000003c0: 30 00 00 00 00 00 00 00 0B 00 00 00 01 00 00 00    0...............
000003d0: 08 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00    ................
000003e0: 26 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00    &...............
000003f0: 00 00 00 00 00 00 00 00 60 00 00 00 00 00 00 00    ........`.......
00000400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000410: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000420: 2C 00 00 00 08 00 00 00 03 00 00 00 00 00 00 00    ,...............
00000430: 00 00 00 00 00 00 00 00 60 00 00 00 00 00 00 00    ........`.......
00000440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000450: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000460: 31 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00    1...............
00000470: 00 00 00 00 00 00 00 00 60 00 00 00 00 00 00 00    ........`.......
00000480: 0E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000490: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000004a0: 39 00 00 00 01 00 00 00 30 00 00 00 00 00 00 00    9.......0.......
000004b0: 00 00 00 00 00 00 00 00 6E 00 00 00 00 00 00 00    ........n.......
000004c0: 2B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    +...............
000004d0: 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00    ................
000004e0: 42 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00    B...............
000004f0: 00 00 00 00 00 00 00 00 99 00 00 00 00 00 00 00    ................
00000500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000510: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000520: 52 00 00 00 07 00 00 00 02 00 00 00 00 00 00 00    R...............
00000530: 00 00 00 00 00 00 00 00 A0 00 00 00 00 00 00 00    ................
00000540: 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000550: 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000560: 6A 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00    j...............
00000570: 00 00 00 00 00 00 00 00 C0 00 00 00 00 00 00 00    ........@.......
00000580: 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    8...............
00000590: 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000005a0: 65 00 00 00 04 00 00 00 40 00 00 00 00 00 00 00    e.......@.......
000005b0: 00 00 00 00 00 00 00 00 90 02 00 00 00 00 00 00    ................
000005c0: 18 00 00 00 00 00 00 00 0B 00 00 00 09 00 00 00    ................
000005d0: 08 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00    ................
000005e0: 01 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00    ................
000005f0: 00 00 00 00 00 00 00 00 F8 00 00 00 00 00 00 00    ........x.......
00000600: 38 01 00 00 00 00 00 00 0C 00 00 00 0A 00 00 00    8...............
00000610: 08 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00    ................
00000620: 09 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00    ................
00000630: 00 00 00 00 00 00 00 00 30 02 00 00 00 00 00 00    ........0.......
00000640: 2A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    *...............
00000650: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000660: 11 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00    ................
00000670: 00 00 00 00 00 00 00 00 A8 02 00 00 00 00 00 00    ........(.......
00000680: 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    t...............
00000690: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

2.4 可执行文件(a.out)

  Offset: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 	
00000000: 7F 45 4C 46 02 01 01 00 00 00 00 00 00 00 00 00    .ELF............
00000010: 03 00 3E 00 01 00 00 00 60 10 00 00 00 00 00 00    ..>.....`.......
00000020: 40 00 00 00 00 00 00 00 78 39 00 00 00 00 00 00    @.......x9......
00000030: 00 00 00 00 40 00 38 00 0D 00 40 00 1F 00 1E 00    ....@.8...@.....
00000040: 06 00 00 00 04 00 00 00 40 00 00 00 00 00 00 00    ........@.......
00000050: 40 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00    @.......@.......
00000060: D8 02 00 00 00 00 00 00 D8 02 00 00 00 00 00 00    X.......X.......
00000070: 08 00 00 00 00 00 00 00 03 00 00 00 04 00 00 00    ................
00000080: 18 03 00 00 00 00 00 00 18 03 00 00 00 00 00 00    ................
00000090: 18 03 00 00 00 00 00 00 1C 00 00 00 00 00 00 00    ................
000000a0: 1C 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00    ................
000000b0: 01 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00    ................
000000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000000d0: 00 06 00 00 00 00 00 00 00 06 00 00 00 00 00 00    ................
000000e0: 00 10 00 00 00 00 00 00 01 00 00 00 05 00 00 00    ................
000000f0: 00 10 00 00 00 00 00 00 00 10 00 00 00 00 00 00    ................
00000100: 00 10 00 00 00 00 00 00 F5 01 00 00 00 00 00 00    ........u.......
00000110: F5 01 00 00 00 00 00 00 00 10 00 00 00 00 00 00    u...............
00000120: 01 00 00 00 04 00 00 00 00 20 00 00 00 00 00 00    ................
00000130: 00 20 00 00 00 00 00 00 00 20 00 00 00 00 00 00    ................
00000140: 60 01 00 00 00 00 00 00 60 01 00 00 00 00 00 00    `.......`.......
00000150: 00 10 00 00 00 00 00 00 01 00 00 00 06 00 00 00    ................
00000160: B8 2D 00 00 00 00 00 00 B8 3D 00 00 00 00 00 00    8-......8=......
00000170: B8 3D 00 00 00 00 00 00 58 02 00 00 00 00 00 00    8=......X.......
00000180: 60 02 00 00 00 00 00 00 00 10 00 00 00 00 00 00    `...............
00000190: 02 00 00 00 06 00 00 00 C8 2D 00 00 00 00 00 00    ........H-......
000001a0: C8 3D 00 00 00 00 00 00 C8 3D 00 00 00 00 00 00    H=......H=......
000001b0: F0 01 00 00 00 00 00 00 F0 01 00 00 00 00 00 00    p.......p.......
000001c0: 08 00 00 00 00 00 00 00 04 00 00 00 04 00 00 00    ................
000001d0: 38 03 00 00 00 00 00 00 38 03 00 00 00 00 00 00    8.......8.......
000001e0: 38 03 00 00 00 00 00 00 20 00 00 00 00 00 00 00    8...............
000001f0: 20 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00    ................
00000200: 04 00 00 00 04 00 00 00 58 03 00 00 00 00 00 00    ........X.......
00000210: 58 03 00 00 00 00 00 00 58 03 00 00 00 00 00 00    X.......X.......
00000220: 44 00 00 00 00 00 00 00 44 00 00 00 00 00 00 00    D.......D.......
00000230: 04 00 00 00 00 00 00 00 53 E5 74 64 04 00 00 00    ........Setd....
00000240: 38 03 00 00 00 00 00 00 38 03 00 00 00 00 00 00    8.......8.......
00000250: 38 03 00 00 00 00 00 00 20 00 00 00 00 00 00 00    8...............
00000260: 20 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00    ................
00000270: 50 E5 74 64 04 00 00 00 14 20 00 00 00 00 00 00    Petd............
00000280: 14 20 00 00 00 00 00 00 14 20 00 00 00 00 00 00    ................
00000290: 44 00 00 00 00 00 00 00 44 00 00 00 00 00 00 00    D.......D.......
000002a0: 04 00 00 00 00 00 00 00 51 E5 74 64 06 00 00 00    ........Qetd....
000002b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000002c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000002d0: 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00    ................
000002e0: 52 E5 74 64 04 00 00 00 B8 2D 00 00 00 00 00 00    Retd....8-......
000002f0: B8 3D 00 00 00 00 00 00 B8 3D 00 00 00 00 00 00    8=......8=......
00000300: 48 02 00 00 00 00 00 00 48 02 00 00 00 00 00 00    H.......H.......
00000310: 01 00 00 00 00 00 00 00 2F 6C 69 62 36 34 2F 6C    ......../lib64/l
00000320: 64 2D 6C 69 6E 75 78 2D 78 38 36 2D 36 34 2E 73    d-linux-x86-64.s
00000330: 6F 2E 32 00 00 00 00 00 04 00 00 00 10 00 00 00    o.2.............
00000340: 05 00 00 00 47 4E 55 00 02 00 00 C0 04 00 00 00    ....GNU....@....
00000350: 03 00 00 00 00 00 00 00 04 00 00 00 14 00 00 00    ................
00000360: 03 00 00 00 47 4E 55 00 FE 0B 98 CB E7 63 08 B9    ....GNU.~..Kgc.9
00000370: 08 BF 06 AA 49 87 70 9A C0 B5 3B 9D 04 00 00 00    .?.*I.p.@5;.....
00000380: 10 00 00 00 01 00 00 00 47 4E 55 00 00 00 00 00    ........GNU.....
00000390: 03 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00    ................
000003a0: 02 00 00 00 06 00 00 00 01 00 00 00 06 00 00 00    ................
000003b0: 00 00 81 00 00 00 00 00 06 00 00 00 00 00 00 00    ................
000003c0: D1 65 CE 6D 00 00 00 00 00 00 00 00 00 00 00 00    QeNm............
000003d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000003e0: 3F 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00    ?...............
000003f0: 00 00 00 00 00 00 00 00 0B 00 00 00 12 00 00 00    ................
00000400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000410: 21 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00    !...............
00000420: 00 00 00 00 00 00 00 00 5B 00 00 00 20 00 00 00    ........[.......
00000430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000440: 6A 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00    j...............
00000450: 00 00 00 00 00 00 00 00 12 00 00 00 22 00 00 00    ............"...
00000460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000470: 00 6C 69 62 63 2E 73 6F 2E 36 00 70 72 69 6E 74    .libc.so.6.print
00000480: 66 00 5F 5F 63 78 61 5F 66 69 6E 61 6C 69 7A 65    f.__cxa_finalize
00000490: 00 5F 5F 6C 69 62 63 5F 73 74 61 72 74 5F 6D 61    .__libc_start_ma
000004a0: 69 6E 00 47 4C 49 42 43 5F 32 2E 32 2E 35 00 5F    in.GLIBC_2.2.5._
000004b0: 49 54 4D 5F 64 65 72 65 67 69 73 74 65 72 54 4D    ITM_deregisterTM
000004c0: 43 6C 6F 6E 65 54 61 62 6C 65 00 5F 5F 67 6D 6F    CloneTable.__gmo
000004d0: 6E 5F 73 74 61 72 74 5F 5F 00 5F 49 54 4D 5F 72    n_start__._ITM_r
000004e0: 65 67 69 73 74 65 72 54 4D 43 6C 6F 6E 65 54 61    egisterTMCloneTa
000004f0: 62 6C 65 00 00 00 00 00 02 00 02 00 00 00 00 00    ble.............
00000500: 02 00 00 00 00 00 00 00 01 00 01 00 01 00 00 00    ................
00000510: 10 00 00 00 00 00 00 00 75 1A 69 09 00 00 02 00    ........u.i.....
00000520: 33 00 00 00 00 00 00 00 B8 3D 00 00 00 00 00 00    3.......8=......
00000530: 08 00 00 00 00 00 00 00 40 11 00 00 00 00 00 00    ........@.......
00000540: C0 3D 00 00 00 00 00 00 08 00 00 00 00 00 00 00    @=..............
00000550: 00 11 00 00 00 00 00 00 08 40 00 00 00 00 00 00    .........@......
00000560: 08 00 00 00 00 00 00 00 08 40 00 00 00 00 00 00    .........@......
00000570: D8 3F 00 00 00 00 00 00 06 00 00 00 01 00 00 00    X?..............
00000580: 00 00 00 00 00 00 00 00 E0 3F 00 00 00 00 00 00    ........`?......
00000590: 06 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00    ................
000005a0: E8 3F 00 00 00 00 00 00 06 00 00 00 04 00 00 00    h?..............
000005b0: 00 00 00 00 00 00 00 00 F0 3F 00 00 00 00 00 00    ........p?......
000005c0: 06 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00    ................
000005d0: F8 3F 00 00 00 00 00 00 06 00 00 00 06 00 00 00    x?..............
000005e0: 00 00 00 00 00 00 00 00 D0 3F 00 00 00 00 00 00    ........P?......
000005f0: 07 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00    ................
00000600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000610: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000006a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000006b0: 00 00 00 00 00 00 00 00 00 00 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值