Linux驱动:内核编译过程

1.内核编译过程:

fly@fly-vm:~/x210bv3s/qt_x210v3s_160307/kernel$ make uImage 
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: 'include/generated/mach-types.h' is up to date.
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  Kernel: arch/arm/boot/Image is ready
  SHIPPED arch/arm/boot/compressed/lib1funcs.S
  AS      arch/arm/boot/compressed/lib1funcs.o
  LD      arch/arm/boot/compressed/vmlinux
  OBJCOPY arch/arm/boot/zImage
  Kernel: arch/arm/boot/zImage is ready
  UIMAGE  arch/arm/boot/uImage
Image Name:   Linux-2.6.35.7+
Created:      Mon Mar 29 08:12:42 2021
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    3649500 Bytes = 3563.96 kB = 3.48 MB
Load Address: 30008000
Entry Point:  30008000
  Image arch/arm/boot/uImage is ready

2.查看编译的详细信息

fly@fly-vm:~/x210bv3s/qt_x210v3s_160307/kernel$ make uImage V=1
rm -f include/config/kernel.release
echo "2.6.35.7$(/bin/sh /home/fly/workSpace/linux/x210bv3s/qt_x210v3s_160307/kernel/scripts/setlocalversion /home/fly/workSpace/linux/x210bv3s/qt_x210v3s_160307/kernel)" > include/config/kernel.release
set -e; : '  CHK     include/linux/version.h'; mkdir -p include/linux/; 	(echo \#define LINUX_VERSION_CODE 132643; echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))';) < /home/fly/workSpace/linux/x210bv3s/qt_x210v3s_160307/kernel/Makefile > include/linux/version.h.tmp; if [ -r include/linux/version.h ] && cmp -s include/linux/version.h include/linux/version.h.tmp; then rm -f include/linux/version.h.tmp; else : '  UPD     include/linux/version.h'; mv -f include/linux/version.h.tmp include/linux/version.h; fi
set -e; : '  CHK     include/generated/utsrelease.h'; mkdir -p include/generated/; 	if [ `echo -n "2.6.35.7+" | wc -c ` -gt 64 ]; then echo '"2.6.35.7+" exceeds 64 characters' >&2; exit 1; fi; (echo \#define UTS_RELEASE \"2.6.35.7+\";) < include/config/kernel.release > include/generated/utsrelease.h.tmp; if [ -r include/generated/utsrelease.h ] && cmp -s include/generated/utsrelease.h include/generated/utsrelease.h.tmp; then rm -f include/generated/utsrelease.h.tmp; else : '  UPD     include/generated/utsrelease.h'; mv -f include/generated/utsrelease.h.tmp include/generated/utsrelease.h; fi
mkdir -p .tmp_versions 
make -f scripts/Makefile.build obj=scripts/basic
rm -f .tmp_quiet_recordmcount
make -f scripts/Makefile.build obj=arch/arm/tools include/generated/mach-types.h
make[1]: 'include/generated/mach-types.h' is up to date.
make -f scripts/Makefile.build obj=.
mkdir -p kernel/
mkdir -p arch/arm/kernel/
make -f scripts/Makefile.build obj=. missing-syscalls
  /bin/sh scripts/checksyscalls.sh /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc -Wp,-MD,./.missing-syscalls.d  -nostdinc -isystem /usr/local/arm/arm-2009q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/include -I/home/fly/workSpace/linux/x210bv3s/qt_x210v3s_160307/kernel/arch/arm/include -Iinclude  -include include/generated/autoconf.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-s5pv210/include -Iarch/arm/plat-s5p/include -Iarch/arm/plat-samsung/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Os -marm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -Wframe-larger-than=1024 -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack   -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(missing_syscalls)"  -D"KBUILD_MODNAME=KBUILD_STR(missing_syscalls)" 
make -f scripts/Makefile.build obj=scripts
make -f scripts/Makefile.build obj=scripts/mod
make -f scripts/Makefile.build obj=init
/bin/sh /home/fly/workSpace/linux/x210bv3s/qt_x210v3s_160307/kernel/scripts/mkcompile_h include/generated/compile.h \
"arm" "" "y" "/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Os -marm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork  -D__LINUX_ARM_ARCH__=7 -march=armv7-a   -msoft-float -Uarm -Wframe-larger-than=1024  -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack"
make -f scripts/Makefile.build obj=usr
make -f scripts/Makefile.build obj=arch/arm/kernel
make -f scripts/Makefile.build obj=arch/arm/mm
make -f scripts/Makefile.build obj=arch/arm/common
make -f scripts/Makefile.build obj=arch/arm/mach-s5pv210
make -f scripts/Makefile.build obj=arch/arm/plat-s5p
make -f scripts/Makefile.build obj=arch/arm/plat-samsung
make -f scripts/Makefile.build obj=arch/arm/vfp
make -f scripts/Makefile.build obj=kernel
make -f scripts/Makefile.build obj=kernel/irq
make -f scripts/Makefile.build obj=kernel/power
make -f scripts/Makefile.build obj=kernel/time
make -f scripts/Makefile.build obj=mm
make -f scripts/Makefile.build obj=fs
make -f scripts/Makefile.build obj=fs/cramfs
make -f scripts/Makefile.build obj=fs/debugfs
make -f scripts/Makefile.build obj=fs/devpts
make -f scripts/Makefile.build obj=fs/ext2
make -f scripts/Makefile.build obj=fs/ext4
make -f scripts/Makefile.build obj=fs/fat
make -f scripts/Makefile.build obj=fs/isofs
make -f scripts/Makefile.build obj=fs/jbd2
make -f scripts/Makefile.build obj=fs/jffs2
make -f scripts/Makefile.build obj=fs/lockd
make -f scripts/Makefile.build obj=fs/nfs
make -f scripts/Makefile.build obj=fs/nfs_common
make -f scripts/Makefile.build obj=fs/nls
make -f scripts/Makefile.build obj=fs/notify
make -f scripts/Makefile.build obj=fs/notify/dnotify
make -f scripts/Makefile.build obj=fs/notify/inotify
make -f scripts/Makefile.build obj=fs/ntfs
make -f scripts/Makefile.build obj=fs/partitions
make -f scripts/Makefile.build obj=fs/proc
make -f scripts/Makefile.build obj=fs/quota
make -f scripts/Makefile.build obj=fs/ramfs
make -f scripts/Makefile.build obj=fs/romfs
make -f scripts/Makefile.build obj=fs/sysfs
make -f scripts/Makefile.build obj=fs/sysv
make -f scripts/Makefile.build obj=fs/udf
make -f scripts/Makefile.build obj=fs/yaffs2
make -f scripts/Makefile.build obj=ipc
make -f scripts/Makefile.build obj=security
make -f scripts/Makefile.build obj=crypto
make -f scripts/Makefile.build obj=block
make -f scripts/Makefile.build obj=drivers
make -f scripts/Makefile.build obj=drivers/auxdisplay
make -f scripts/Makefile.build obj=drivers/base
make -f scripts/Makefile.build obj=drivers/base/power
make -f scripts/Makefile.build obj=drivers/block
make -f scripts/Makefile.build obj=drivers/cdrom
make -f scripts/Makefile.build obj=drivers/char
make -f scripts/Makefile.build obj=drivers/char/buzzer
make -f scripts/Makefile.build obj=drivers/char/hw_random
make -f scripts/Makefile.build obj=drivers/char/led
make -f scripts/Makefile.build obj=drivers/clocksource
make -f scripts/Makefile.build obj=drivers/cpuidle
make -f scripts/Makefile.build obj=drivers/cpuidle/governors
make -f scripts/Makefile.build obj=drivers/crypto
make -f scripts/Makefile.build obj=drivers/firmware
make -f scripts/Makefile.build obj=drivers/gpio
make -f scripts/Makefile.build obj=drivers/gpu
make -f scripts/Makefile.build obj=drivers/gpu/drm
make -f scripts/Makefile.build obj=drivers/gpu/drm/i2c
make -f scripts/Makefile.build obj=drivers/gpu/pvr
make -f scripts/Makefile.build obj=drivers/gpu/vga
make -f scripts/Makefile.build obj=drivers/hid
make -f scripts/Makefile.build obj=drivers/hid/usbhid
make -f scripts/Makefile.build obj=drivers/i2c
make -f scripts/Makefile.build obj=drivers/i2c/algos
make -f scripts/Makefile.build obj=drivers/i2c/busses
make -f scripts/Makefile.build obj=drivers/idle
make -f scripts/Makefile.build obj=drivers/ieee1394
make -f scripts/Makefile.build obj=drivers/ieee802154
make -f scripts/Makefile.build obj=drivers/input
make -f scripts/Makefile.build obj=drivers/input/keyboard
make -f scripts/Makefile.build obj=drivers/input/mouse
make -f scripts/Makefile.build obj=drivers/input/touchscreen
make -f scripts/Makefile.build obj=drivers/input/serio
make -f scripts/Makefile.build obj=drivers/lguest
make -f scripts/Makefile.build obj=drivers/macintosh
make -f scripts/Makefile.build obj=drivers/md
make -f scripts/Makefile.build obj=drivers/media
make -f scripts/Makefile.build obj=drivers/media/IR
make -f scripts/Makefile.build obj=drivers/media/IR/keymaps
make -f scripts/Makefile.build obj=drivers/media/common
make -f scripts/Makefile.build obj=drivers/media/common/tuners
make -f scripts/Makefile.build obj=drivers/media/radio
make -f scripts/Makefile.build obj=drivers/media/video
make -f scripts/Makefile.build obj=drivers/media/video/gspca
make -f scripts/Makefile.build obj=drivers/media/video/samsung
make -f scripts/Makefile.build obj=drivers/media/video/samsung/fimc
make -f scripts/Makefile.build obj=drivers/media/video/samsung/g2d
make -f scripts/Makefile.build obj=drivers/media/video/samsung/jpeg_v2
make -f scripts/Makefile.build obj=drivers/media/video/samsung/mfc50
make -f scripts/Makefile.build obj=drivers/media/video/samsung/tv20
make -f scripts/Makefile.build obj=drivers/media/video/uvc
make -f scripts/Makefile.build obj=drivers/mfd
make -f scripts/Makefile.build obj=drivers/misc
make -f scripts/Makefile.build obj=drivers/misc/cb710
make -f scripts/Makefile.build obj=drivers/misc/eeprom
make -f scripts/Makefile.build obj=drivers/mmc
make -f scripts/Makefile.build obj=drivers/mmc/card
make -f scripts/Makefile.build obj=drivers/mmc/core
make -f scripts/Makefile.build obj=drivers/mmc/host
make -f scripts/Makefile.build obj=drivers/mtd
make -f scripts/Makefile.build obj=drivers/mtd/chips
make -f scripts/Makefile.build obj=drivers/mtd/devices
make -f scripts/Makefile.build obj=drivers/mtd/lpddr
make -f scripts/Makefile.build obj=drivers/mtd/maps
make -f scripts/Makefile.build obj=drivers/mtd/nand
make -f scripts/Makefile.build obj=drivers/mtd/onenand
make -f scripts/Makefile.build obj=drivers/mtd/tests
make -f scripts/Makefile.build obj=drivers/net
make -f scripts/Makefile.build obj=drivers/net/arm
make -f scripts/Makefile.build obj=drivers/net/wan
make -f scripts/Makefile.build obj=drivers/net/wimax
make -f scripts/Makefile.build obj=drivers/net/wireless
make -f scripts/Makefile.build obj=drivers/net/wireless/hostap
make -f scripts/Makefile.build obj=drivers/platform
make -f scripts/Makefile.build obj=drivers/power
make -f scripts/Makefile.build obj=drivers/regulator
make -f scripts/Makefile.build obj=drivers/rtc
make -f scripts/Makefile.build obj=drivers/scsi
make -f scripts/Makefile.build obj=drivers/scsi/arm
make -f scripts/Makefile.build obj=drivers/serial
make -f scripts/Makefile.build obj=drivers/spi
make -f scripts/Makefile.build obj=drivers/staging
make -f scripts/Makefile.build obj=drivers/staging/android
make -f scripts/Makefile.build obj=drivers/switch
make -f scripts/Makefile.build obj=drivers/usb
make -f scripts/Makefile.build obj=drivers/usb/core
make -f scripts/Makefile.build obj=drivers/usb/early
make -f scripts/Makefile.build obj=drivers/usb/host
make -f scripts/Makefile.build obj=drivers/usb/misc
make -f scripts/Makefile.build obj=drivers/usb/storage
make -f scripts/Makefile.build obj=drivers/video
make -f scripts/Makefile.build obj=drivers/video/backlight
make -f scripts/Makefile.build obj=drivers/video/console
make -f scripts/Makefile.build obj=drivers/video/display
make -f scripts/Makefile.build obj=drivers/video/logo
make -f scripts/Makefile.build obj=drivers/video/omap2
make -f scripts/Makefile.build obj=drivers/video/omap2/displays
make -f scripts/Makefile.build obj=drivers/video/omap2/dss
make -f scripts/Makefile.build obj=drivers/video/omap2/omapfb
make -f scripts/Makefile.build obj=drivers/video/samsung
make -f scripts/Makefile.build obj=sound
make -f scripts/Makefile.build obj=sound/arm
make -f scripts/Makefile.build obj=sound/atmel
make -f scripts/Makefile.build obj=sound/core
make -f scripts/Makefile.build obj=sound/core/oss
make -f scripts/Makefile.build obj=sound/core/seq
make -f scripts/Makefile.build obj=sound/core/seq/oss
make -f scripts/Makefile.build obj=sound/drivers
make -f scripts/Makefile.build obj=sound/drivers/mpu401
make -f scripts/Makefile.build obj=sound/drivers/opl3
make -f scripts/Makefile.build obj=sound/drivers/opl4
make -f scripts/Makefile.build obj=sound/drivers/pcsp
make -f scripts/Makefile.build obj=sound/drivers/vx
make -f scripts/Makefile.build obj=sound/i2c
make -f scripts/Makefile.build obj=sound/i2c/other
make -f scripts/Makefile.build obj=sound/isa
make -f scripts/Makefile.build obj=sound/isa/ad1816a
make -f scripts/Makefile.build obj=sound/isa/ad1848
make -f scripts/Makefile.build obj=sound/isa/cs423x
make -f scripts/Makefile.build obj=sound/isa/es1688
make -f scripts/Makefile.build obj=sound/isa/gus
make -f scripts/Makefile.build obj=sound/isa/msnd
make -f scripts/Makefile.build obj=sound/isa/opti9xx
make -f scripts/Makefile.build obj=sound/isa/sb
make -f scripts/Makefile.build obj=sound/isa/wavefront
make -f scripts/Makefile.build obj=sound/isa/wss
make -f scripts/Makefile.build obj=sound/mips
make -f scripts/Makefile.build obj=sound/parisc
make -f scripts/Makefile.build obj=sound/pci
make -f scripts/Makefile.build obj=sound/pci/ac97
make -f scripts/Makefile.build obj=sound/pci/ali5451
make -f scripts/Makefile.build obj=sound/pci/asihpi
make -f scripts/Makefile.build obj=sound/pci/au88x0
make -f scripts/Makefile.build obj=sound/pci/aw2
make -f scripts/Makefile.build obj=sound/pci/ca0106
make -f scripts/Makefile.build obj=sound/pci/cs46xx
make -f scripts/Makefile.build obj=sound/pci/cs5535audio
make -f scripts/Makefile.build obj=sound/pci/ctxfi
make -f scripts/Makefile.build obj=sound/pci/echoaudio
make -f scripts/Makefile.build obj=sound/pci/emu10k1
make -f scripts/Makefile.build obj=sound/pci/hda
make -f scripts/Makefile.build obj=sound/pci/ice1712
make -f scripts/Makefile.build obj=sound/pci/korg1212
make -f scripts/Makefile.build obj=sound/pci/lx6464es
make -f scripts/Makefile.build obj=sound/pci/mixart
make -f scripts/Makefile.build obj=sound/pci/nm256
make -f scripts/Makefile.build obj=sound/pci/oxygen
make -f scripts/Makefile.build obj=sound/pci/pcxhr
make -f scripts/Makefile.build obj=sound/pci/riptide
make -f scripts/Makefile.build obj=sound/pci/rme9652
make -f scripts/Makefile.build obj=sound/pci/trident
make -f scripts/Makefile.build obj=sound/pci/vx222
make -f scripts/Makefile.build obj=sound/pci/ymfpci
make -f scripts/Makefile.build obj=sound/pcmcia
make -f scripts/Makefile.build obj=sound/pcmcia/pdaudiocf
make -f scripts/Makefile.build obj=sound/pcmcia/vx
make -f scripts/Makefile.build obj=sound/ppc
make -f scripts/Makefile.build obj=sound/sh
make -f scripts/Makefile.build obj=sound/soc
make -f scripts/Makefile.build obj=sound/soc/atmel
make -f scripts/Makefile.build obj=sound/soc/au1x
make -f scripts/Makefile.build obj=sound/soc/blackfin
make -f scripts/Makefile.build obj=sound/soc/codecs
make -f scripts/Makefile.build obj=sound/soc/davinci
make -f scripts/Makefile.build obj=sound/soc/fsl
make -f scripts/Makefile.build obj=sound/soc/imx
make -f scripts/Makefile.build obj=sound/soc/omap
make -f scripts/Makefile.build obj=sound/soc/pxa
make -f scripts/Makefile.build obj=sound/soc/s3c24xx
make -f scripts/Makefile.build obj=sound/soc/s6000
make -f scripts/Makefile.build obj=sound/soc/sh
make -f scripts/Makefile.build obj=sound/soc/txx9
make -f scripts/Makefile.build obj=sound/sparc
make -f scripts/Makefile.build obj=sound/spi
make -f scripts/Makefile.build obj=sound/synth
make -f scripts/Makefile.build obj=sound/synth/emux
make -f scripts/Makefile.build obj=sound/usb
make -f scripts/Makefile.build obj=sound/usb/caiaq
make -f scripts/Makefile.build obj=sound/usb/misc
make -f scripts/Makefile.build obj=sound/usb/usx2y
make -f scripts/Makefile.build obj=firmware
make -f scripts/Makefile.build obj=net
make -f scripts/Makefile.build obj=net/802
make -f scripts/Makefile.build obj=net/core
make -f scripts/Makefile.build obj=net/ethernet
make -f scripts/Makefile.build obj=net/ieee802154
make -f scripts/Makefile.build obj=net/ipv4
make -f scripts/Makefile.build obj=net/ipv4/netfilter
make -f scripts/Makefile.build obj=net/ipv6
make -f scripts/Makefile.build obj=net/ipv6/netfilter
make -f scripts/Makefile.build obj=net/key
make -f scripts/Makefile.build obj=net/mac80211
make -f scripts/Makefile.build obj=net/netfilter
make -f scripts/Makefile.build obj=net/netlink
make -f scripts/Makefile.build obj=net/packet
make -f scripts/Makefile.build obj=net/rfkill
make -f scripts/Makefile.build obj=net/sched
make -f scripts/Makefile.build obj=net/sunrpc
make -f scripts/Makefile.build obj=net/sunrpc/auth_gss
make -f scripts/Makefile.build obj=net/unix
make -f scripts/Makefile.build obj=net/wanrouter
make -f scripts/Makefile.build obj=net/wimax
make -f scripts/Makefile.build obj=net/wireless
make -f scripts/Makefile.build obj=net/xfrm
make -f scripts/Makefile.build obj=arch/arm/lib
make -f scripts/Makefile.build obj=lib
make -f scripts/Makefile.build obj=lib/reed_solomon
make -f scripts/Makefile.build obj=lib/zlib_deflate
make -f scripts/Makefile.build obj=lib/zlib_inflate
rm -f .old_version
make -f scripts/Makefile.build obj=arch/arm/boot MACHINE=arch/arm/mach-s5pv210/ arch/arm/boot/uImage
  Kernel: arch/arm/boot/Image is ready
make -f scripts/Makefile.build obj=arch/arm/boot/compressed arch/arm/boot/compressed/vmlinux
  cat /home/fly/workSpace/linux/x210bv3s/qt_x210v3s_160307/kernel/arch/arm/lib/lib1funcs.S > arch/arm/boot/compressed/lib1funcs.S
  /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-gcc -Wp,-MD,arch/arm/boot/compressed/.lib1funcs.o.d  -nostdinc -isystem /usr/local/arm/arm-2009q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/include -I/home/fly/workSpace/linux/x210bv3s/qt_x210v3s_160307/kernel/arch/arm/include -Iinclude  -include include/generated/autoconf.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-s5pv210/include -Iarch/arm/plat-s5p/include -Iarch/arm/plat-samsung/include -D__ASSEMBLY__ -mabi=aapcs-linux -mno-thumb-interwork  -D__LINUX_ARM_ARCH__=7 -march=armv7-a  -include asm/unified.h -msoft-float -gdwarf-2     -Wa,-march=all   -c -o arch/arm/boot/compressed/lib1funcs.o arch/arm/boot/compressed/lib1funcs.S
  /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-ld -EL    --defsym zreladdr=0x30008000 --defsym params_phys=0x30000100 -p --no-undefined -X -T arch/arm/boot/compressed/vmlinux.lds arch/arm/boot/compressed/head.o arch/arm/boot/compressed/piggy.gzip.o arch/arm/boot/compressed/misc.o arch/arm/boot/compressed/decompress.o arch/arm/boot/compressed/lib1funcs.o -o arch/arm/boot/compressed/vmlinux 
  /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-objcopy -O binary -R .note -R .note.gnu.build-id -R .comment -S  arch/arm/boot/compressed/vmlinux arch/arm/boot/zImage
  Kernel: arch/arm/boot/zImage is ready
  /bin/sh /home/fly/workSpace/linux/x210bv3s/qt_x210v3s_160307/kernel/scripts/mkuboot.sh -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -n 'Linux-2.6.35.7+' -d arch/arm/boot/zImage arch/arm/boot/uImage
Image Name:   Linux-2.6.35.7+
Created:      Mon Mar 29 08:15:26 2021
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    3649500 Bytes = 3563.96 kB = 3.48 MB
Load Address: 30008000
Entry Point:  30008000
  Image arch/arm/boot/uImage is ready

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值