c - 如何为 PowerPC 编译 Hello World 程序

标签 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>
^

谢谢!

最佳答案

您应该使用交叉编译器,因为您的目标 体系结构与宿主 体系结构不同。 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 编译您的程序。或者您可以将环境变量 CCCXX 设置为 powerpc-linux-gnu-gcc-4.8powerpc-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/bin 并从此处使用带有适当前缀的 gcc

关于c - 如何为 PowerPC 编译 Hello World 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32104775/

相关文章:

c - GCC 多个函数定义链接器错误

c - header 中定义了 var 的重复符号和多重包含保护

assembly - 顺序和障碍 :what is the equivalent instruction on x86 for 'lwsync' on PowerPC?

c - 通过 getauxval 检测 Power8 核心加密?

java - 在 "strong"代码语言中重新分配变量类型/值

c - 为什么设置断点会使我的代码工作?

c - 是否可以更改 va_arg 的值?

c - 如何用 C 编译简单的 gearman worker?

Python3 centos/amazon AMI - 安装 net-snmp/easysnmp - gcc 错误

cocoa - 如何使用 xcode 3.2.6 构建通用二进制文件?