返回

Jetson Nano 上 GCC-7 编译“-m64”选项错误指南:如何解决

Linux

Jetson Nano 上 GCC-7 编译“-m64”选项错误指南

简介

Jetson Nano 是一款强大的边缘计算设备,可以运行各种机器学习和 AI 应用。如果您希望在 Jetson Nano 上使用 GCC-7 编译器编译 C 代码,您可能会遇到“-m64”选项不被识别的错误。本文将探讨此错误的原因并提供详细的解决方案。

理解错误

当使用 GCC-7 编译器在 Jetson Nano 上编译 C 代码时,您可能会看到以下错误消息:

gcc-7: error: unrecognized command line option ‘-m64’

此错误表明编译器不识别“-m64”选项,这是 ARM64 架构的常见选项。Jetson Nano 使用的是 ARM64 架构,因此“-m64”选项对于该设备来说是冗余的,甚至会导致编译失败。

解决方案

要解决此错误,您需要采取以下步骤:

  1. 检查默认编译器: 首先,检查系统中默认的 C 编译器:

    $ which gcc
    

    如果输出不是“/usr/bin/gcc-7”,则需要将 GCC-7 设置为默认编译器。

  2. (可选)设置默认编译器: 要将 GCC-7 设置为默认编译器,请运行以下命令:

    $ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
    
  3. 禁用“-m64”选项: 在编译命令中禁用“-m64”选项:

    $ gcc -Wall -Wextra -Wconversion -pedantic -Wshadow -O0 -g -o CMakeFiles/dir/testCCompiler.c.o -c /home/user/dir/CMakeFiles/CMakeTmp/testCCompiler.c
    
  4. 重新编译: 重新编译代码:

    $ make
    

常见问题解答

1. 为什么“-m64”选项会在 Jetson Nano 上引起错误?

  • GCC-7 不支持 ARM64 架构,而 Jetson Nano 使用的是 ARM64 架构。因此,“-m64”选项对于 Jetson Nano 是不必要的,并且会导致编译错误。

2. 如何设置 GCC-7 为默认编译器?

  • 使用 sudo update-alternatives 命令将 GCC-7 设置为默认编译器。

3. 为什么即使禁用“-m64”选项后编译仍然失败?

  • 确保您使用了正确的编译器标志,并且您的编译器支持 ARM64 架构。

4. 是否有其他编译器可用于 Jetson Nano?

  • 是的,您可以使用其他编译器,例如 GCC-8 或更高版本,这些编译器支持 ARM64 架构。

5. 如何获取有关 GCC-7 编译器的更多信息?

  • 有关 GCC-7 编译器的更多信息,请参考 GCC 手册。

结论

通过禁用“-m64”选项并确保使用支持 ARM64 架构的编译器,您可以解决 Jetson Nano 上 GCC-7 编译器的错误。如果您仍然遇到问题,请查阅本文中的步骤并参考提供的常见问题解答。