我有一个 Dreambox 500,维基百科上说它有一个 PCP 处理器,它是 PowerPC:
$ cat /proc/cpuinfo
processor: 0
cpu: STBx25xx
clock: 252MHz
Review: 9.80 (pvr 5151 0950)
bogomips: 250.36
Machine: Dream Multimedia Dreambox TV
plb bus clock: 63MHz
我通常会安装 GCC,但它的存储空间不足,我需要为它编译一个程序。
我听说 GCC 可以编译 powerpc,但我没有成功。
示例代码
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
我用它来编译
gcc example.c -mtune=powerpc
但它给出了这个错误
example.c:1:0 error: bad value (powerpc) for -mtune- switch
#include <stdio.h>
^
谢谢!
最佳答案
您应该使用交叉编译器,因为您的目标 体系结构与宿主 体系结构不同。 Host 是您系统的架构(通常是 amd64
(x86_64) 或 i386
(x86_32))。 target arch 是编译后的程序将在其上运行的 arch(在您的例子中为 powerpc
)。
许多 GNU/Linux 发行商将交叉编译器作为单独的软件包提供。例如,对于 Ubuntu,这些包可用:
sudo apt-get install gcc-4.8-powerpc-linux-gnu g++-4.8-powerpc-linux-gnu binutils-4.8-powerpc-linux-gnu
上面的包是可信赖的。在以后的版本中,可以使用不同的 GCC 版本。
然后您可以使用 powerpc-linux-gnu-gcc-4.8
编译您的程序。或者您可以将环境变量 CC
和 CXX
设置为 powerpc-linux-gnu-gcc-4.8
和 powerpc-linux-gnu -g++-4.8
相应地。
更新: 我找到了 Dreambox 500 的交叉编译器工具链 here , 但它包含相对较旧的 GCC (3.4)。
为了使用它提取下载的文件到/opt/cross/dm500
,通过添加
并从此处使用带有适当前缀的 /opt/cross/dm500/cdk/bin
到路径导出 PATH=$PATH:/opt/cross/dm500/cdk/bingcc
。
关于c - 如何为 PowerPC 编译 Hello World 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32104775/