CSDN首页>

为 Linux on Power 系统开发 C/C++ 交叉编译应用程序

发表于2015-08-12 17:34| 来源CSDN| 作者CSDN

摘要:本文将介绍如何通过 IBM SDK for Linux on Power 提供的集成环境使用 IBM Advance Toolchain 和 QEMU 用户模式为 IBM Power 服务器开发交叉编译应用程序。此 SDK 是免费的基于 Eclipse 的集成开发环境(integrated development environment,IDE),集成了 C/C++ 源代码开发与 Advance Toolchain、Post-Link Optimization 和典型的 Linux 性能分析工具,...

简介

IBM® Software Development Kit (SDK) for Linux on Power 是免费的基于 Eclipse 的集成开发环境(integrated development environment,IDE)。此 SDK 集成了 C/C++ 源代码开发与 Advance Toolchain、Post-Link Optimization 和典型的 Linux 性能分析工具,包括 Oprofile、Perf 和 Valgrind。

本文介绍如何通过 IBM SDK 提供的集成环境使用 IBM Advance Toolchain 和 QEMU 用户模式为 Linux on Power 开发交叉编译应用程序,这样做允许运行和调试针对一个处理器编译的应用程序,使其在另一个拥有不同架构的处理器上运行(这就是交叉编译/调试)。

要求

为使用 SDK 中的 QEMU 用户模式,需要安装 IBM Advance Toolchain 交叉编译器、QEMU 用户模式和 IBM SDK for Linux on Power。

出于本文的目的,我们使用了以下版本:

  • IBM Advance Toolchain cross compiler 8.0-1
  • IBM SDK for Linux on Power 1.6
  • QEMU 用户模式

重要提示:在编写本文时,SDK 1.6 已推出,但还未提供支持 ppc64le(Linux on Power 的小端版本)的软件包。为了提供最新的改进,SDK 团队为它创建了一个可安装的软件包。

使用的操作系统是 Fedora 20。

安装 IBM Advance Toolchain 交叉编译器

IBM Advance Toolchain for PowerLinux™ 是一组开源开发工具和运行时库,它使用户能够在 Linux 上利用以下最新的 IBM Power® 硬件特性(在本文发布时):

  • IBM POWER8™ 支持
  • POWER8 优化的调度程序
  • POWER8 Transactional Memory 支持
  • OWER8 Crypto Operations 支持
  • POWER8 Fusion 支持

执行以下步骤来安装 IBM Advance Toolchain 交叉编译器。

  1、下载 AT 8.0-1 交叉编译器的通用包

  2、下载 AT 8.0-1 交叉编译器的 ppc64le 版本

  3、运行以下命令来安装两种包:

    a.$sudo yum install -y ./advance-toolchain-at8.0-cross-common-8.0-1.x86_64.rpm

    b.$sudo yum install -y ./advance-toolchain-at8.0-cross-ppc64le-8.0-1.x86_64.rpm

您会注意到,AT 8.0-1 交叉编译器已安装且目录为 /opt/at8.0。

安装 x86_64 版本的 SDK

x86_64 版本的 IBM SDK 支持 IBM Advance Toolchain 交叉编译器版本 7.0-1、7.1-0 和 8.0-1。还可以使用它创建同步项目,这允许使用远程 IBM Power 服务器开发应用程序。

有关如何创建同步项目的更多信息,请参见 SDK 用户指南。如果您想访问 Power 服务器,请访问 MiniCloud 网站并提交您的请求。它是免费的!

返回到 SDK 安装。按照以下步骤进行操作:

  1、下载 x86_64 版本的 IBM SDK for Linux on Power

  2、运行以下命令以安装软件包。

$sudo yum install -y ./ibm-sdk-lop-1.6.0-1.x86_64.rpm

安装 QEMU 用户模式

QEMU 是一个广泛使用的开源计算机模拟器和虚拟机。此用户模式允许在一个处理器上启动针对另一个处理器编译的程序,这样就可以运行和调试交叉编译应用程序。

当 SDK 1.6 发布时,所支持的发行版中可用的 QEMU 用户模式版本并未包含支持 ppc64le 的补丁。为了克服这种情况,SDK 团队为它创建了一个可安装的包。

要安装 QEMU 用户模式,请执行以下步骤。

  1、下载 QEMU user-mode 软件包。

  2、运行以下命令来安装此软件包。

$sudo yum install -y ./qemu-user-space-emulator-1-1.x86_64.rpm

现在,QEMU  直接投入使用,但是如果您想使用最新版的 QEMU,可以在本地构建它。这个过程非常简单,步骤如下所示:

在您开始之前,确保已安装了 Git

1.使用以下命令克隆 QEMU 源代码:

   a.git clone git://git.qemu.org/qemu.git

   b.cd ./qemu

2.使用以下命令创建构建目录:

   a.mkdir -p bin/debug/native

   b.cd bin/debug/native

3.使用以下命令安装依赖项:

$sudo yum install -y zlib.x86_64 glibc-devel.x86_64 zlib-devel.x86_64 pixman-devel.x86_64 libfdt-devel.x86_64 glib2-devel.x86_64

4.使用以下命令配置项目:

../../../configure --disable-debug-tcg --enable-tcg-interpreter --target-list="ppc64abi32-linux-user ppc64le-linux-user ppc64-linux-user" --disable-vnc --extra-cflags="-O3"

5.运行以下 make 命令。

make -j5

6.使用以下命令安装 QEMU 库。

$sudo make install

重要提示:安装完成之后,QEMU 库位于 /usr/local/bin 下,但 SDK 希望它们的目录为 /opt/ibm/qemu-user-space-emulator。以下步骤提供了一种解决此问题的方法:

 

1.使用以下命令创建目录:

$sudo mkdir -p /opt/ibm/qemu-user-space-emulator

2.使用以下命令将库从 /usr/local/bin 复制到 /opt/ibm/qemu-user-space-emulator:

$sudo cp /usr/local/bin/qemu-ppc64 /usr/local/bin/qemu-ppc64abi32 /usr/local/bin/qemu-ppc64le /opt/ibm/qemu-user-space-emulator

创建交叉编译项目

使用 IBM SDK for Linux on Power 创建交叉编译项目非常简单。完成 Advance Toolchain、QEMU 和 SDK 的安装后,就可以开始开发 C/C++ 交叉编译应用程序了。

1. 第一步是启动 SDK。可以通过在用户界面选择 SDK 或者使用命令行来启动它。

   a.使用用户界面:

   搜索 IBM SDK for Linux on Power 1.6。

   b.使用命令行:

   运行以下命令:/opt/ibm/ibm-sdk-lop/ibm-sdk-lop

     当 SDK 启动时,将提示您选择工作区。

图 1. 定义工作区

定义了工作区之后,就可以使用 SDK。

 

图 2. SDK 视图

2.现在,您可以创建交叉编译项目了。在 Getting Started 选项卡中,选择 New IBM Advance Toochain C Project 或 IBM Advance Toolchain C++ Project 

图 3. 选择项目类型

选择项目类型

3.选择了所需的项目类型后,需要配置新项目,包括名称、位置、类型和工具链。

图 4. 项目配置

4.还可以通过选择处理器类型来调优应用程序。

 

图 5. 调优应用程序

5.单击 Finish 以在之前创建的工作区中设置项目。它将位于 Project Explorer 选项卡中。

 

图 6. 项目结构
项目结构

 

构建交叉编译项目

现在已经创建了项目,可以开始构建它了。选择项目,右键单击并选择 Build Project

图 7. 构建项目

构建项目

构建过程完成之后,交叉编译库会出现在 Project Explorer 选项卡下的 Binaries 节点中。

图 8. 构建结果

构建结果

 

使用 QEMU 用户模式运行交叉编译项目

要使用 QEMU 用户模式运行交叉编译项目,需要执行以下步骤。

1.选择您的项目,右键单击,然后单击 Run As → Qemu

 
图 9. 使用 QEMU 运行交叉编译应用程序
使用 QEMU 运行交叉编译应用程序

由于这是您第一次尝试使用 QEMU 运行应用程序,因此需要为应用程序配置一个新的启动器。

 
图 10. QEMU 启动器配置
QEMU 启动器配置

2.现在,需要选择应用程序。单击 Browse,会显示 Program Selection 对话框。

 
图 11. 二进制选择
二进制选择

3.单击 OK。这会自动填写所有必填字段。必填字段是 QEMU 位置和路径,这是运行应用程序所需库的存放位置。

重要提示:如果您的应用程序依赖具体的库,则需要在运行应用程序之前处理此依赖关系。

 
图 12. 必填字段
必填字段

4.要设置新库的位置,请单击 Libraries Paths 部分的 Browse

 
图 13. 库路径管理器
库路径管理器

5.在 Libraries Paths 对话框中,可以使用选项 New Path 或 Remove 来添加或删除路径位置。

一个可选的步骤是设置 QEMU 选项。选择一个选项时,此选项的输出将包含在名为 qemu.log 的文件中,此文件显示在 Project Explorer 选项卡下。可用的选项如下图所示。

 
图 14. QEMU 选项
QEMU 选项

0
0
  • CSDN官方微信
  • 扫描二维码,向CSDN吐槽
  • 微信号:CSDNnews
程序员移动端订阅下载

微博关注

相关热门文章