我有一个Dreambox 500,在Wikipedia上说它有一个PowerPC PCP处理器:
$ 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
Run Code Online (Sandbox Code Playgroud)
我通常会安装GCC,但是它的存储空间不足,因此我需要为其编译程序。
我听说GCC可以编译powerpc,但是我没有运气。
此代码示例
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我用它来编译
gcc example.c -mtune=powerpc
Run Code Online (Sandbox Code Playgroud)
但是它给这个错误
example.c:1:0 error: bad value (powerpc) for -mtune- switch
#include <stdio.h>
^
Run Code Online (Sandbox Code Playgroud)
谢谢!
您应该使用交叉编译器,因为您的目标体系结构与主机体系结构不同。主机是系统的体系结构(通常是amd64(x86_64)或i386(x86_32))。目标弓是将在其中运行已编译程序的弓(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
Run Code Online (Sandbox Code Playgroud)
上面的软件包值得信赖。在更高的版本中,提供了不同的GCC版本。
然后,您可以使用编译程序powerpc-linux-gnu-gcc-4.8。或者,你可以设置你的环境变量CC,并CXX以powerpc-linux-gnu-gcc-4.8和powerpc-linux-gnu-g++-4.8相应。
upd: 我在这里找到了Dreambox 500的交叉编译器工具链,但其中包含相对较旧的GCC(3.4)。
为了使用它将下载的文件提取到/opt/cross/dm500,/opt/cross/dm500/cdk/bin通过添加到路径export PATH=$PATH:/opt/cross/dm500/cdk/bin并gcc从此处使用适当的前缀。
在编程论坛上呆了一段时间后,发现一个人有同样的问题,过了一段时间他找到了解决这个问题的方法,我尝试了一下,它有效。我要做的就是
powerpc-gcc someprog.c -static
Run Code Online (Sandbox Code Playgroud)
我不知道 -static 的作用是什么,但它增加了可执行文件的大小,最后它起作用了!
| 归档时间: |
|
| 查看次数: |
8722 次 |
| 最近记录: |