如何编译PowerPC的Hello World程序

时间:2015-08-19 20:10:44

标签: c gcc powerpc

我有一个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>
^

谢谢!

2 个答案:

答案 0 :(得分:4)

您应该使用交叉编译器,因为目标架构与主机架构不同。主机是系统的体系结构(通常为amd64(x86_64)或i386(x86_32))。目标arch是运行已编译程序的拱门(在您的情况下为powerpc)。

许多GNU / Linux distors提供交叉编译器作为单独的包。例如,对于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编译您的程序。或者,您可以相应地将环境变量CCCXX设置为powerpc-linux-gnu-gcc-4.8powerpc-linux-gnu-g++-4.8

<强> UPD: 我找到了Dreambox 500 here的交叉编译器工具链,但它包含相对较旧的GCC(3.4)。

为了使用它将下载的文件解压缩到/opt/cross/dm500,请通过/opt/cross/dm500/cdk/binexport PATH=$PATH:/opt/cross/dm500/cdk/bin添加到路径,并使用gcc从此处添加适当的前缀。

答案 1 :(得分:0)

在一个编程论坛上待了一段时间后,找到了一个有同样问题的人,过了一会儿他找到了解决问题的方法,我试了一下它就行了。 我要做的就是

powerpc-gcc someprog.c -static

我不知道-static做了什么,但它增加了可执行文件的大小,最后它可以工作!