在 Ubuntu 12.04 上为 ARM 处理器编译 C 代码

在 Ubuntu 12.04 上为 ARM 处理器编译 C 代码

我正在使用以下命令编译简单的“Hello world”C 代码:

  1. arm-linux-gnueabi-gcc-4.4 test.cpp -o test

    它会产生一个错误:

    arm-linux-gnueabi-gcc-4.4: error trying to exec 'cc1plus': 
    execvp: No such file or directory
    
  2. 我的目录:/usr/lib/gcc/arm-linux-gnueabi/4.4.7没有cc1plus编译器正在寻找的任何文件cc1plus,而我的目录中/usr/lib/gcc/arm-linux-gnueabi/4.6有该cc1plus文件。

test.cpp是一个简单的“hello-world”程序,我打算将其针对于 ARM 处理器。

请建议如何解决这个问题。

答案1

您的文件有.cpp扩展名,因此gcc将尝试使用一些 c++ 设置进行编译。cc1plus附带 g++ 包,请尝试安装它。我以前遇到过类似的问题。

  1. 安装 ARM g++ 交叉编译器

    sudo apt-get install g++-arm-linux-gnueabi
    
  2. 然后使用 g++ 而不是 gcc 来获得正确的链接

    arm-linux-gnueabi-g++ test.cpp -o test
    

答案2

gcc是一个 C 编译器,g++也是一个 C++ 编译器。

您正在尝试使用编译器编译 cpp 文件gcc,请尝试使用g++编译器。

使用以下命令安装 g++

sudo apt-get install g++

问候,Rangineni Balu

答案3

gcc是一个 C 编译器,也是g++一个 C++ 编译器,正如@rangineni balu 的回答中提到的那样。

但您也可以使用gcc它来编译 C++ 程序,如下-libstdc++所示:

gcc -x c++ hello.cpp -lstdc++

附加信息:

如何安装gcc

要编译 C 程序:

gcc hello.c -o hello

运行它:

./hello

相关内容