-bin/sh ./hello not found错误

1、我现在挂上文件系统了。
编了个helloworld小程序想测试一下:
hello.c,很简单一句话:printf("hello world/n");
但是当我用armgcc编译好,放到文件系统上时,执行 ./hello,提示:
-bin/sh ./hello not found

这是什么原因?
我在内核配置里面已经选上 ELF格式支持,但是a.out 和MISC binaries没有选。现在晚上手上没板也试不了。
大侠们觉得是哪里的问题呢?
会是busybox问题么?但是我拿到3星的s3c2440下试确实没有问题的,猜测应该是内核问题?

后来想到编译的时候没有加静态选项,可能是缺少库文件。

马上加上库文件,果然好了。

拿lijay大虾的话总结:

一就是有可能/lib下面没有C库 就是没有glibc或者uclibc的动态库
二就是你板子上的C库和编译hello链接时用的C库不一样, 差别太大.

2、

最近有时间开始学习ARM,平台是TQ2440,下载了2.6.31的内核源码,并开始构建yaffs2文件系统,手册上写的还是很详细,可是我在 往里面加Zmodem文件传输协议的命时,却出现了-/bin/sh: rz: not found的错误,自己编译的hello程序也出现同样的错误,不是权限不够,后来把系统自带的根文件系统下的库文件全复制过来,这样就可以执行了。

 

看来是缺少库文件的原因,可是原来的库文件太多,每次下载很慢,所以就干脆自己添加目前需要的,用arm-linux-readelf命令查看的所需的库,根据输出拷贝了    

 libc-2.8.so    libgcc_s.so.1  libnsl.so.1
 libc.so.6      libnsl-2.8.so

以为这样就没问题了,可是还是出现上述错误

后来用arm-linux-readelf -a hello

输出一大堆信息,看见输出中提到了ld-linux.so.3,去库文件的目录下面查看了该文件,是个符号链接,于是把它和它指向的库文件全都复制到根文件系统的/lib目录下面,这样就可以制作的yaffs2文件系统下载到板子上

运行./hello

hello

 

不知道ld-linux.so.3在Linux系统中起什么样的作用。。。

 

3、

奋战半月有余,终于建起了开发平台,以第一个“Hello World”入门程序开始,兴奋之余却遇到bin/sh: hello :not found拦路虎,郁闷啊~~~网上说法云云,改了kernel,又改rootfs,瞎忙一通无济啊,不过还是被我的鼠眼瞄到了,嘿嘿~~~

Build Options->

Build BusyBox as a static binary (no shared libs)

Build with Large File Support (for accessing file>2GB)

如果选择 Build BusyBox as a static binary (no shared libs) 方式进行编译时,所需的库已经与程序静态地链接在一起,这些程序不需要额外的库就可以单独运行,但是自己编写的程序在文件系统上运行必须采用静态编译,否 则会报诸如:bin/sh: hello :not found的错误。

静态编译如:

arm-linux-gcc –static hello.c –o hello

在开发板上直接./hello,便会有你要的惊喜~~~

make package/helloworld/compile V=s Collecting package info: done make[1]: Entering directory '/home/dml/openwrt/openwrt-15.05.1' make[2]: Entering directory '/home/dml/openwrt/openwrt-15.05.1/package/libs/toolchain' if [ -f /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean; fi; echo "libc" >> /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install if [ -f /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean; fi; echo "libgcc" >> /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install if [ -f /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean ]; then rm -f /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install.clean; fi; echo "libpthread" >> /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/toolchain.default.install make[2]: Leaving directory '/home/dml/openwrt/openwrt-15.05.1/package/libs/toolchain' make[2]: Entering directory '/home/dml/openwrt/openwrt-15.05.1/package/helloworld' mkdir -p /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0 cp -fpR -u ./src/* /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/ touch /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/.prepared_b743478132aa7182b38d1864e309ace8 rm -f /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/stamp/._installed (cd /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/./; if [ -x ./configure ]; then find /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/ -name config.guess | xargs -r chmod u+w; find /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/ -name config.guess | xargs -r -n1 cp --remove-destination /home/dml/openwrt/openwrt-15.05.1/scripts/config.guess; find /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/ -name config.sub | xargs -r chmod u+w; find /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/ -name config.sub | xargs -r -n1 cp --remove-destination /home/dml/openwrt/openwrt-15.05.1/scripts/config.sub; AR="arm-openwrt-linux-uclibcgnueabi-gcc-ar" AS="arm-openwrt-linux-uclibcgnueabi-gcc -c -Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard" LD=arm-openwrt-linux-uclibcgnueabi-ld NM="arm-openwrt-linux-uclibcgnueabi-gcc-nm" CC="arm-openwrt-linux-uclibcgnueabi-gcc" GCC="arm-openwrt-linux-uclibcgnueabi-gcc" CXX="arm-openwrt-linux-uclibcgnueabi-g++" RANLIB="arm-openwrt-linux-uclibcgnueabi-gcc-ranlib" STRIP=arm-openwrt-linux-uclibcgnueabi-strip OBJCOPY=arm-openwrt-linux-uclibcgnueabi-objcopy OBJDUMP=arm-openwrt-linux-uclibcgnueabi-objdump SIZE=arm-openwrt-linux-uclibcgnueabi-size CFLAGS="-Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard " CXXFLAGS="-Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard " CPPFLAGS="-I/home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/usr/include -I/home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/include -I/home/dml/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/usr/include -I/home/dml/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/include " LDFLAGS="-L/home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/usr/lib -L/home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/lib -L/home/dml/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/usr/lib -L/home/dml/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/lib " ./configure --target=arm-openwrt-linux --host=arm-openwrt-linux --build=x86_64-linux-gnu --program-prefix="" --program-suffix="" --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --sysconfdir=/etc --datadir=/usr/share --localstatedir=/var --mandir=/usr/man --infodir=/usr/info --disable-nls ; fi; ) rm -f /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/.configured_* touch /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/.configured_yyy CFLAGS="-Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -I/home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/usr/include -I/home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/include -I/home/dml/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/usr/include -I/home/dml/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/include " CXXFLAGS="-Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -I/home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/usr/include -I/home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/include -I/home/dml/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/usr/include -I/home/dml/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/include " LDFLAGS="-L/home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/usr/lib -L/home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/lib -L/home/dml/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/usr/lib -L/home/dml/openwrt/openwrt-15.05.1/staging_dir/toolchain-arm_mpcore+vfp_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/lib " make -j1 -C /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/. AR="arm-openwrt-linux-uclibcgnueabi-gcc-ar" AS="arm-openwrt-linux-uclibcgnueabi-gcc -c -Os -pipe -march=armv6k -mtune=mpcore -mfpu=vfp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard" LD=arm-openwrt-linux-uclibcgnueabi-ld NM="arm-openwrt-linux-uclibcgnueabi-gcc-nm" CC="arm-openwrt-linux-uclibcgnueabi-gcc" GCC="arm-openwrt-linux-uclibcgnueabi-gcc" CXX="arm-openwrt-linux-uclibcgnueabi-g++" RANLIB="arm-openwrt-linux-uclibcgnueabi-gcc-ranlib" STRIP=arm-openwrt-linux-uclibcgnueabi-strip OBJCOPY=arm-openwrt-linux-uclibcgnueabi-objcopy OBJDUMP=arm-openwrt-linux-uclibcgnueabi-objdump SIZE=arm-openwrt-linux-uclibcgnueabi-size CROSS="arm-openwrt-linux-uclibcgnueabi-" ARCH="arm" ; make[3]: Entering directory '/home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0' arm-openwrt-linux-uclibcgnueabi-gcc -Wall -Wextra -O2 -c helloworld.c -o helloworld.o cc1: note: someone does not honour COPTS correctly, passed 0 times arm-openwrt-linux-uclibcgnueabi-gcc -Wall -Wextra -O2 helloworld.o -o helloworld make[3]: Leaving directory '/home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0' touch /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi//.built mkdir -p /home/dml/openwrt/openwrt-15.05.1/bin/realview/packages /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/ipkg-realview/helloworld/CONTROL /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo install -d -m0755 /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/ipkg-realview/helloworld/etc/init.d/ install -m0644 ./filesystem/etc/init.d/helloworld.init /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/ipkg-realview/helloworld/etc/init.d/ install -d -m0755 /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/ipkg-realview/helloworld/usr/bin install -m0755 /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/helloworld /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/ipkg-realview/helloworld/usr/bin find /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/ipkg-realview/helloworld -name 'CVS' -o -name '.svn' -o -name '.#*' -o -name '*~'| xargs -r rm -rf export CROSS="arm-openwrt-linux-uclibcgnueabi-" NO_RENAME=1 ; NM="arm-openwrt-linux-uclibcgnueabi-nm" STRIP="/home/dml/openwrt/openwrt-15.05.1/staging_dir/host/bin/sstrip" STRIP_KMOD="/home/dml/openwrt/openwrt-15.05.1/scripts/strip-kmod.sh" PATCHELF="/home/dml/openwrt/openwrt-15.05.1/staging_dir/host/bin/patchelf" /home/dml/openwrt/openwrt-15.05.1/scripts/rstrip.sh /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/ipkg-realview/helloworld rstrip.sh: /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/ipkg-realview/helloworld/usr/bin/helloworld: executable (cd /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/ipkg-realview/helloworld/CONTROL; ( echo "$CONTROL"; printf "Description: "; echo "$DESCRIPTION" | sed -e 's,^[[:space:]]*, ,g'; ) > control; chmod 644 control; ( echo "#!/bin/sh"; echo "[ \"\${IPKG_NO_SCRIPT}\" = \"1\" ] && exit 0"; echo ". \${IPKG_INSTROOT}/lib/functions.sh"; echo "default_postinst \$0 \$@"; ) > postinst; ( echo "#!/bin/sh"; echo ". \${IPKG_INSTROOT}/lib/functions.sh"; echo "default_prerm \$0 \$@"; ) > prerm; chmod 0755 postinst prerm; ) install -d -m0755 /home/dml/openwrt/openwrt-15.05.1/bin/realview/packages/base /home/dml/openwrt/openwrt-15.05.1/scripts/ipkg-build -c -o 0 -g 0 /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/ipkg-realview/helloworld /home/dml/openwrt/openwrt-15.05.1/bin/realview/packages/base Packaged contents of /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/ipkg-realview/helloworld into /home/dml/openwrt/openwrt-15.05.1/bin/realview/packages/base/helloworld_1.0_realview.ipk rm -rf /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/root-realview/tmp-helloworld mkdir -p /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/root-realview/stamp /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/root-realview/tmp-helloworld install -d -m0755 /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/root-realview/tmp-helloworld/etc/init.d/ install -m0644 ./filesystem/etc/init.d/helloworld.init /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/root-realview/tmp-helloworld/etc/init.d/ install -d -m0755 /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/root-realview/tmp-helloworld/usr/bin install -m0755 /home/dml/openwrt/openwrt-15.05.1/build_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/helloworld-1.0/helloworld /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/root-realview/tmp-helloworld/usr/bin SHELL= /home/dml/openwrt/openwrt-15.05.1/staging_dir/host/bin/flock /home/dml/openwrt/openwrt-15.05.1/tmp/.root-copy.flock -c 'cp -fpR /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/root-realview/tmp-helloworld/. /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/root-realview/' rm -rf /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/root-realview/tmp-helloworld touch /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/root-realview/stamp/.helloworld_installed if [ -f /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/helloworld.default.install.clean ]; then rm -f /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/helloworld.default.install /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/helloworld.default.install.clean; fi; echo "helloworld" >> /home/dml/openwrt/openwrt-15.05.1/staging_dir/target-arm_mpcore+vfp_uClibc-0.9.33.2_eabi/pkginfo/helloworld.default.install make[2]: Leaving directory '/home/dml/openwrt/openwrt-15.05.1/package/helloworld' make[1]: Leaving directory '/home/dml/openwrt/openwrt-15.05.1'
08-13
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值