NCSDK make install: "Error in line 170"

安装总结:按照官方文档的系统硬件要求来,萌新的我就别试着创新啦,麻烦都是自创的。后来你会发现,官方文档都写在那了,要你用16,你非得试18,能力不行,折腾半个月,啥也搞不成。

参考楼梯直达

  1. 打开文件夹   /opt/movidius/NCSDK   下的  install-ncsdk.s
  2. 把170行处的PRE_INSTALL_INFO以及下面的if-fi注释掉。

注意:回到ncsdk目录下,此时还不能直接make install,因为make install 又会重新下载和解压,然后把刚才改的文件覆盖掉。所以要把ncsdk目录下的install.sh文件第37、38行注释掉,然后再安装。

gcc: error: unrecognized argument in option ‘-mabi=aapcs-linux’ gcc: note: valid arguments to ‘-mabi=’ are: ms sysv gcc: error: unrecognized command line option ‘-mlittle-endian’ gcc: error: unrecognized command line option ‘-mno-thumb-interwork’ gcc: error: unrecognized command line option ‘-mfpu=vfp’ scripts/Makefile.build:258: recipe for target 'scripts/mod/empty.o' failed make[2]: *** [scripts/mod/empty.o] Error 1 scripts/Makefile.build:403: recipe for target 'scripts/mod' failed make[1]: *** [scripts/mod] Error 2 make[1]: *** Waiting for unfinished jobs.... HOSTCC scripts/dtc/checks.o HOSTCC scripts/dtc/util.o Generating include/generated/mach-types.h SHIPPED scripts/dtc/dtc-lexer.lex.c SHIPPED scripts/dtc/dtc-parser.tab.h SHIPPED scripts/dtc/dtc-parser.tab.c HOSTCC scripts/dtc/dtc-lexer.lex.o CC kernel/bounds.s gcc: error: unrecognized argument in option ‘-mabi=aapcs-linux’ gcc: note: valid arguments to ‘-mabi=’ are: ms sysv gcc: error: unrecognized command line option ‘-mlittle-endian’ gcc: error: unrecognized command line option ‘-mno-thumb-interwork’ gcc: error: unrecognized command line option ‘-mfpu=vfp’ Kbuild:43: recipe for target 'kernel/bounds.s' failed make[1]: *** [kernel/bounds.s] Error 1 Makefile:990: recipe for target 'prepare0' failed make: *** [prepare0] Error 2 make: *** Waiting for unfinished jobs.... HOSTCC scripts/dtc/dtc-parser.tab.o HOSTLD scripts/dtc/dtc Makefile:555: recipe for target 'scripts' failed make: *** [scripts] Error 2
最新发布
04-01
<think>好的,我现在需要解决用户遇到的GCC编译错误,具体是未识别的命令行选项'-mabi=aapcs-linux'、'-mlittle-endian'、'-mno-thumb-interwork'和'-mfpu=vfp'。首先,我得分析每个选项的可能原因,然后找到对应的解决方案。 首先,用户提到的这些选项都是针对ARM架构的编译选项。例如,'-mabi=aapcs-linux'指定了ABI类型,'-mlittle-endian'设置小端模式,'-mno-thumb-interwork'禁用Thumb和ARM指令集的交互,'-mfpu=vfp'指定浮点单元。这些选项可能在旧版本的GCC中使用,而新版本的GCC可能不再支持这些选项,或者语法发生了变化。 接下来,我需要检查用户使用的GCC版本是否与这些选项兼容。用户可能使用的是较新版本的GCC,而原来的代码或Makefile是为旧版本设计的。例如,'-mabi=aapcs-linux'在较新的GCC中可能已被废弃,改为使用'-mabi=apcs-gnu'或其他选项。此外,某些选项可能已经默认启用或不再需要,比如小端模式可能已经是默认设置,所以可以尝试移除该选项。 另外,用户可能没有正确安装交叉编译工具链。例如,错误信息中提到了“arm-linux-gnueabihf-gcc: Command not found”,这说明系统可能没有安装对应的工具链,或者路径设置不正确。需要确保安装了正确的工具链,并且其路径已添加到环境变量中。 还有,编译内核时使用的配置可能与当前工具链不兼容。例如,Linux内核版本和交叉编译器的版本不匹配,导致某些选项不被支持。这时需要检查内核的版本,并确认对应的工具链是否适用,可能需要更换工具链版本或升级/降级内核源码。 可能的解决步骤包括: 1. 更新或更换交叉编译工具链,确保其支持目标平台和内核版本。 2. 修改Makefile中的编译器选项,替换或移除不再支持的参数。 3. 检查内核配置,确认是否启用了正确的架构和ABI设置。 4. 查找社区或文档中是否有类似问题的解决方案,参考其他开发者的经验。 此外,需要验证用户的环境是否正确设置,比如是否安装了必要的依赖库,是否设置了ARCH和CROSS_COMPILE环境变量等。例如,在编译内核时,通常需要指定ARCH=arm和CROSS_COMPILE=arm-linux-gnueabihf-,以确保使用正确的交叉编译器。 可能还需要查看GCC的文档,了解各选项在不同版本中的变化。例如,某些选项可能在GCC 5或更高版本中被移除,导致编译错误。在这种情况下,需要调整代码中的编译选项,或者回退到旧版本的GCC。 最后,测试修改后的配置,确保编译过程不再报错,并且生成的内核或应用程序能够正常运行。如果问题依然存在,可能需要更深入地分析具体的错误日志,或者寻求社区的帮助。</think>### 分步解决方案 #### 问题分析 编译时遇到`gcc: error: unrecognized command line options`通常由以下原因导致: 1. **编译器版本不匹配**:旧版代码使用的编译器选项在新版GCC中已废弃或修改[^3] 2. **交叉编译工具链配置错误**:未正确安装或选择ARM架构专用工具链[^4] 3. **平台参数冲突**:x86架构编译器尝试处理ARM专属参数(如`-mabi=aapcs-linux`) #### 解决方案步骤 **1. 验证工具链安装** ```bash # 确认ARM交叉编译器已安装 apt list --installed | grep arm-linux-gnueabihf # 若未安装,执行(Ubuntu/Debian) sudo apt-get install gcc-arm-linux-gnueabihf ``` **2. 更新编译选项** 修改Makefile中以下参数: ```makefile # 旧参数(已废弃) CFLAGS += -mabi=aapcs-linux -mlittle-endian -mno-thumb-interwork -mfpu=vfp # 新参数(GCC ≥ 5) CFLAGS += -march=armv7-a -mfloat-abi=hard -mfpu=neon ``` *说明:`-march=armv7-a`替代旧ABI参数,`-mfpu=neon`兼容性优于vfp[^1]* **3. 指定交叉编译器** 在编译命令前添加架构声明: ```bash # 设置环境变量 export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf- make ``` **4. 内核版本适配** 若编译Linux内核,需确保: - 内核版本与工具链兼容(如linux-3.x建议使用gcc-4.x) - 执行`make distclean`清除旧配置 - 使用正确defconfig: ```bash make ARCH=arm vexpress_defconfig ``` #### 验证方法 ```bash # 检查编译器版本与目标架构 arm-linux-gnueabihf-gcc -v # 应显示Target: arm-linux-gnueabihf # 测试编译简单程序 echo 'int main(){return 0;}' | arm-linux-gnueabihf-gcc -x c - ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值