如何为 PowerPC 编译 Hello World 程序
How to compile Hello World program for 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>
^
谢谢!
您应该使用交叉编译器,因为您的 target 架构不同于 host 架构。 Host 是您系统的架构(通常是 amd64
(x86_64) 或 i386
(x86_32))。 target arch 是你的编译程序将 运行 (在你的情况下是 powerpc
)的 arch。
许多 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
编译你的程序。或者您可以相应地将环境变量 CC
和 CXX
设置为 powerpc-linux-gnu-gcc-4.8
和 powerpc-linux-gnu-g++-4.8
。
更新:
我找到了 Dreambox 500 的交叉编译器工具链 here,但它包含相对较旧的 GCC (3.4)。
为了使用它将下载的文件提取到 /opt/cross/dm500
,通过 export PATH=$PATH:/opt/cross/dm500/cdk/bin
添加 /opt/cross/dm500/cdk/bin
到路径,并从这里使用带有适当前缀的 gcc
。
在编程论坛上呆了一段时间后,找到了一个有同样问题的人,过了一会儿他找到了修复它的方法,我试了一下,它成功了。
我要做的事情是
powerpc-gcc someprog.c -static
我不知道 -static 的作用是什么,但它会增加可执行文件的大小,最后它起作用了!
我有一个 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>
^
谢谢!
您应该使用交叉编译器,因为您的 target 架构不同于 host 架构。 Host 是您系统的架构(通常是 amd64
(x86_64) 或 i386
(x86_32))。 target arch 是你的编译程序将 运行 (在你的情况下是 powerpc
)的 arch。
许多 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
编译你的程序。或者您可以相应地将环境变量 CC
和 CXX
设置为 powerpc-linux-gnu-gcc-4.8
和 powerpc-linux-gnu-g++-4.8
。
更新: 我找到了 Dreambox 500 的交叉编译器工具链 here,但它包含相对较旧的 GCC (3.4)。
为了使用它将下载的文件提取到 /opt/cross/dm500
,通过 export PATH=$PATH:/opt/cross/dm500/cdk/bin
添加 /opt/cross/dm500/cdk/bin
到路径,并从这里使用带有适当前缀的 gcc
。
在编程论坛上呆了一段时间后,找到了一个有同样问题的人,过了一会儿他找到了修复它的方法,我试了一下,它成功了。 我要做的事情是
powerpc-gcc someprog.c -static
我不知道 -static 的作用是什么,但它会增加可执行文件的大小,最后它起作用了!