解决 vs error BK1505 cannot read from file 'Debug/XXX.bsc'方法

本文介绍了解决Visual Studio编译时出现的error BK1505问题,该错误通常与bsc文件相关。通过取消启用浏览信息选项可以避免此问题。

VS编译的时候有时会出现error BK1505,无法读取bsc文件
解决方法:
项目-项目属性-C/C+±浏览信息-启用浏览信息勾掉即可
在这里插入图片描述

arm-buildroot-linux-gnueabihf-gcc -L../../lib -L../../debug/lib -L/data/test_wifi8_docker/Iplatform/openwrt/staging_dir/target-arm-openwrt-linux-uclibc-bn800v1/usr/lib -L/data/test_wifi8_docker/Iplatform/openwrt/staging_dir/target-arm-openwrt-linux-uclibc-bn800v1/lib -Wl,-rpath-link,/data/test_wifi8_docker/Iplatform/openwrt/staging_dir/target-arm-openwrt-linux-uclibc-bn800v1/usr/lib -L/data/test_wifi8_docker/Iplatform/openwrt/../../bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/usr/lib -L/data/test_wifi8_docker/Iplatform/openwrt/../../bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/lib -luci LinuxHCI.o -lSS1BTPS -lBTPSVEND -lSS1BTDBG -lpthread -lm -o LinuxHCI /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(BSC.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(BSC.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(HCI.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(HCI.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(GAP.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(GAP.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(GAPLE.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(GAPLE.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(SCO.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(SCO.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(SDP.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(SDP.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(RFCOMM.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(RFCOMM.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(SPP.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(SPP.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(GOEP.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(GOEP.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(OTP.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(OTP.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(OTPCHCVT.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(OTPCHCVT.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(VerifyCert.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(VerifyCert.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(SHA_256.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(SHA_256.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(BTPSSEC.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(BTPSSEC.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(L2CAP.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(L2CAP.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(BTPSKRNL.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(BTPSKRNL.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(BTPSCERT.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(BTPSCERT.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(HCIDRV.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(HCIDRV.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(HCIUSB.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(HCIUSB.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(LOCKFILE.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(LOCKFILE.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(BTPSTMR.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(BTPSTMR.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(HCIComm.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(HCIComm.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(HCILL.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(HCILL.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(SIBS.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(SIBS.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(TWUART.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(TWUART.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(BCSP.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(BCSP.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libSS1BTPS.a(H4DS.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libSS1BTPS.a(H4DS.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../lib/libBTPSVEND.a(BTPSVEND.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../lib/libBTPSVEND.a(BTPSVEND.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../debug/lib/libSS1BTDBG.a(DEBUG.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../debug/lib/libSS1BTDBG.a(DEBUG.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../debug/lib/libSS1BTDBG.a(BTPSFILE.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../debug/lib/libSS1BTDBG.a(BTPSFILE.o) /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: error: LinuxHCI uses VFP register arguments, ../../debug/lib/libSS1BTDBG.a(DEBUGIM.o) does not /data/test_wifi8_docker/bcm620L/toolchains/opt/toolchains/crosstools-arm_hf-gcc-13.2-linux-5.15-glibc-2.38-binutils-2.41/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/13.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: failed to merge target specific data of file ../../debug/lib/libSS1BTDBG.a(DEBUGIM.o) collect2: error: ld returned 1 exit status make[4]: *** [<builtin>: LinuxHCI] Error 1 make[4]: Leaving directory '/data/test_wifi8_docker/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-bn800v1/bluetopia-profiles-4.2/sample/LinuxHCI' make[3]: *** [Makefile:67: /data/test_wifi8_docker/Iplatform/openwrt/build_dir/target-arm-openwrt-linux-uclibc-bn800v1/bluetopia-profiles-4.2/.built] Error 2 make[3]: Leaving directory '/data/test_wifi8_docker/Iplatform/packages/private/bluetopia-profiles' make[2]: *** [package/Makefile:134: package/feeds/iplatform/bluetopia-profiles/compile] Error 2 make[2]: Leaving directory '/data/test_wifi8_docker/Iplatform/openwrt' make[1]: *** [/data/test_wifi8_docker/Iplatform/openwrt/include/toplevel.mk:186: package/bluetopia-profiles/compile] Error 2 make[1]: Leaving directory '/data/test_wifi8_docker/Iplatform/openwrt' make: *** [Makefile:237: iplatform_package/bluetopia-profiles/compile] Error 2
最新发布
11-19
<think> 我们面对的是一个链接错误,错误信息显示:目标文件`LinuxHCI`使用了VFP寄存器参数,而多个库文件(如`libSS1BTPS.a`中的目标文件)并未使用,导致无法合并特定目标数据。 原因分析: 1. **VFP使用不一致**:VFP(Vector Floating Point)是ARM的浮点运算单元。错误表明主程序(LinuxHCI)编译时使用了VFP寄存器来传递参数(可能因为编译选项指定了浮点ABI为硬浮点hard-float),而引用的静态库(如libSS1BTPS.a)中的目标文件编译时未使用相同的浮点ABI(可能是软浮点soft-float或软浮点兼容模式softfp),导致链接器无法合并代码。 2. **根本原因**:静态库的编译选项和当前程序的编译选项在浮点ABI上不一致。具体来说,可能是库文件在编译时没有使用`-mfloat-abi=hard`(或者使用了`-mfloat-abi=soft`或`softfp`),而当前程序使用了`-mfloat-abi=hard`。 解决方案: 方案一:重新编译静态库,使用与当前程序一致的浮点ABI选项(硬浮点)。 方案二:如果无法重新编译库,则尝试将当前程序改为使用软浮点ABI(不推荐,可能影响性能,且可能需要整个系统一致)。 具体步骤(以方案一为例): 1. **确定目标平台的浮点ABI**:当前编译命令中使用的工具链是`arm-buildroot-linux-gnueabihf-gcc`,其中`hf`代表硬浮点(hard-float)。因此,我们需要确保所有静态库也使用硬浮点选项编译。 2. **检查静态库的编译选项**:查看生成`libSS1BTPS.a`等库的Makefile,确认在编译这些库时,CFLAGS中是否包含`-mfloat-abi=hard`(或者`-mfloat-abi=softfp`,但需要统一为hard)。 3. **重新配置和编译静态库**:如果库的编译选项不正确,需要修改构建配置,添加正确的浮点选项,然后重新编译库。 4. **清理并重新编译**:在重新编译库之后,再重新链接主程序。 如果静态库是由第三方提供且无法重新编译,那么可能需要联系供应商提供硬浮点版本的库。 临时验证方法(不推荐长期使用): 可以尝试强制链接器忽略ABI不匹配,但可能导致运行时错误。在链接选项中添加`-Wl,--no-warn-mismatch`,但这只是抑制警告,并不能解决根本问题。 根据错误信息,问题发生在`bluetopia-profiles`这个包中,因此我们需要修改这个包的编译选项。 在OpenWrt构建系统中,可以通过修改`bluetopia-profiles`的Makefile来添加浮点选项。例如,在Makefile中设置: ``` TARGET_CFLAGS += -mfloat-abi=hard ``` 但是,请注意,整个工具链应该已经默认使用了硬浮点(因为工具链是gnueabihf),所以可能是库在编译时覆盖了浮点选项。 另一种可能是,这些库文件是预先编译好的,并没有使用正确的选项编译。在这种情况下,需要获取源代码并重新编译。 根据编译路径,我们正在编译的是`/data/test_wifi8_docker/Iplatform/packages/private/bluetopia-profiles`,因此我们可以在这个包的Makefile中调整编译选项。 具体步骤: 1. 进入包目录:`cd /data/test_wifi8_docker/Iplatform/packages/private/bluetopia-profiles` 2. 编辑Makefile,在配置选项中加入`-mfloat-abi=hard`,或者确保没有覆盖掉工具链默认的浮点选项。 3. 重新编译该包:回到OpenWrt构建目录,执行`make package/bluetopia-profiles/clean`,然后重新编译。 注意:如果这个包在构建时使用了autotools配置,可能需要通过环境变量传递选项,例如: ``` CONFIGURE_ARGS += --with-float=hard ``` 或者直接设置CFLAGS: ``` TARGET_CFLAGS += -mfloat-abi=hard ``` 由于错误发生在链接阶段,且涉及多个目标文件,因此最可能的原因是库的编译选项与应用程序不一致,因此统一为硬浮点是最佳解决方案。 如果问题仍然存在,可以使用以下命令检查静态库的浮点ABI: ```bash arm-buildroot-linux-gnueabihf-readelf -A ../../lib/libSS1BTPS.a ``` 查看输出中是否有`Tag_ABI_VFP_args: VFP registers`(硬浮点)或者`Tag_ABI_VFP_args: AAPCS`(软浮点兼容)或没有相关标记(软浮点)。 另外,检查主程序的目标文件: ```bash arm-buildroot-linux-gnueabihf-readelf -A LinuxHCI.o | grep -i vfp ``` 期望的输出是`Tag_ABI_VFP_args: VFP registers`(硬浮点)。 通过对比,可以确认是否一致。 结论:需要确保所有库和主程序使用相同的浮点ABI(此处应为硬浮点)。 </think>### ARM 链接错误分析及解决方案 #### 🔍 错误原因诊断 ```mermaid graph TD A[链接错误] --> B[浮点ABI不兼容] B --> C{主程序使用VFP寄存器参数} B --> D{静态库未使用VFP} C --> E[编译选项 -mfloat-abi=hard] D --> F[库文件编译选项不一致] ``` 错误核心问题:**VFP(Vector Floating Point)寄存器使用不一致** - 主程序 `LinuxHCI` 编译时使用了硬件浮点调用约定(`-mfloat-abi=hard`) - 静态库 `libSS1BTPS.a` 等编译时使用软浮点(`-mfloat-abi=soft`) #### 🛠️ 解决方案 ##### 方案一:统一编译选项(推荐) ```bash # 1. 检查当前编译选项 echo | arm-buildroot-linux-gnueabihf-gcc -dM -E - | grep -i vfp # 2. 在Makefile中强制统一浮点ABI # 添加全局编译选项(根据工具链实际情况选择) CFLAGS += -mfloat-abi=hard # 统一为硬浮点 # 或 CFLAGS += -mfloat-abi=soft # 统一为软浮点 # 3. 清除并重新编译 make clean make ``` ##### 方案二:链接器兼容处理 ```bash # 在链接命令中添加特殊选项 -Wl,--no-warn-mismatch # 忽略ABI不匹配警告(可能引发运行时错误) ``` ##### 方案三:重建工具链(彻底解决) ```mermaid flowchart LR A[检查工具链配置] --> B[确认浮点支持] B --> C{重新配置} C --> D[启用VFP一致性] D --> E[重建工具链] ``` #### 🔧 验证步骤 1. 确认工具链默认ABI: ```bash arm-buildroot-linux-gnueabihf-gcc -v 2>&1 | grep 'with-float' ``` 2. 检查库文件ABI: ```bash arm-buildroot-linux-gnueabihf-readelf -A ../../lib/libSS1BTPS.a | grep -i 'VFP registers' ``` 3. 检查目标文件ABI: ```bash arm-buildroot-linux-gnueabihf-readelf -A LinuxHCI.o | grep 'Tag_ABI_VFP_args' ``` #### 📌 关键配置点 | 配置项 | 推荐值 | 说明 | |--------|--------|------| | `--with-float` | hard | 工具链配置时启用硬浮点 | | `-mfloat-abi` | hard | 编译选项统一为硬浮点 | | `-mfpu` | vfpv3-d16 | 指定VFP版本 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值