概要
このトピックでは、UbuntuでObject Storage Service (OSS) SDK for Cを使用してクロスコンパイルする方法について説明します。
紹介と手続き
はじめに
クロスコンパイル: 別のプラットフォームで実行できる実行可能ファイルが1つのプラットフォームで生成されます。 たとえば、実行可能ファイルは、Windows上で実行できるLinux上で生成されます。 この例では、ARM開発環境で実行できる実行可能ファイルがLinux上で生成されます。 コンパイルはクロスコンパイルとは異なります。 コンパイルでは、コンパイルプラットフォーム上で実行可能な実行可能ファイルが生成される。
インストール環境の準備
arm-linux-gccクロスコンパイラをダウンロードします。
OSS SDK for Cをダウンロードします。ダウンロードURLについては、「序文」をご参照ください。
Apache公式サイトからAPRおよびAPR-utilソースコードをダウンロードします。
cURL公式サイトからcURLソースコードをダウンロードします。
SourceForge公式Webサイトからバージョン2.9.1のMXMLソースコードをダウンロードします。
expatの公式サイトからexpatのソースコードをダウンロードします。
インストール
arm-linux-gccのインストール
サーバーにログインし、次のコマンドを実行して
/usr/local/arm_4.4.3ディレクトリを作成します。mkdir /usr/local/arm_4.4.3次のコマンドを実行して、クロスコンパイラを解凍します。
tar zvxf arm-linux-gcc-4.4.3.tar.gz次のコマンドを実行して、クロスコンパイラのすべてのファイルを
/usr/local/arm_4.4.3ディレクトリにコピーします。mv opt/FriendlyARM/toolschain/4.4.3/* /usr/local/arm_4.4.3環境変数を変更し、次の内容を
/etc/profileファイルの最後に追加します。エクスポートPATH=$PATH:/usr/local/arm_4.4.3/bin/次のコマンドを実行して、新しい環境変数設定を読み込みます。
source /etc/profile次のコマンドを実行して、arm-linux-gccがインストールされているかどうかを確認します。
アーム-linux-gcc -V次のようなコマンド出力が表示されます。

cURLライブラリのインストール
cURLソースコードを解凍した後、次のコマンドを実行してcURLライブラリを設定します。
. /configure -- prefix=/root/curl -- host=arm-none-linux CC=/usr/local/arm_4.4.3/bin/arm-none-linux-gnueabi-gcc CXX=/usr/local/arm_4.4.3/bin/arm-none-linux-gnueabi-g ++説明注: cURLライブラリは
/root/curlディレクトリにインストールされます。次のコマンドを実行して、cURLライブラリをコンパイルします。
作る
するインストールする きれいに
APRライブラリのインストール
次のコマンドを実行して、APRライブラリを設定します。
. /configure -- プレフィックス=/ルート /apr-1/ -- ホスト=arm-none-linux CC=/usr/local /arm_vvoid-bin/arm-none-linux-gnueabi-gcc CXX=/usr説明注意: APRライブラリは
/root/apr-1ディレクトリにインストールされます。インストール中に次のエラーが報告された場合は、I/Oベクター構造を定義します。
の再定義. /include/apr_want.h:94:8: error: 'struct iovec'I/Oベクトル構造の定義を次の図に示します。

makeコマンドを実行します。 次のエラーが報告された場合は、次の操作を実行します。 エラーが報告されない場合は、
make installコマンドを実行します。encoding/apr_escape.c:79:33: error: 'test_char_table '宣言されていない tools/gen_test_char > include/private/apr_escape_test_char.h /bin/bash: tools/gen_test_char: バイナリファイルを実行できません: Exec形式エラー次のコマンドを順番に実行して、現在のプラットフォームで実行されるgen_test_charファイルを生成します。
gcc-ウォール-O2 -DCROSS_COMPILEツール /gen_test_char.c -s -o gen_test_char . /gen_test_char > include/private/apr_escape_test_char.h現在のディレクトリのMakeFileファイルを変更して、gen_test_charファイルが自動的に生成されないようにします。

次のコマンドを実行して、APRライブラリを再インストールします。
作る
するインストールする きれいに
Expatライブラリのインストール
APR-utilライブラリを直接インストールすると、次のエラーが発生します。 XMLパーサーが存在しないため、最初にExpatライブラリをインストールする必要があります。
xml/apr_xml.c:35:19: fatal error: expat.h: そのようなファイルまたはディレクトリがありません# include <expat.h>次のコマンドを実行して、Expatパッケージを解凍します。
bzip2 -d expat-2.2.5.tar.bz2 tar vxf expat-2.2.5.tar次のコマンドを実行して、指定したディレクトリにアクセスします。
cd expat-2.2.5/次のコマンドを実行してExpatライブラリを設定します。
. /configure -- prefix=/root/expat -- host=arm-none-linux CC=/usr/local/arm_4.4.3/bin/arm-none-linux-gnueabi-gcc CXX=/usr/local/arm_4.4.3/bin/arm-none-linux-gnueabi-g ++説明注: /root /Expatディレクトリにexpatライブラリをインストールします。
APR-utilライブラリのインストール
次のコマンドを実行して、APR-utilライブラリを設定します。
. /configure -- prefix=/root/apr-util -- host=arm-none-linux CC=/usr/local/arm_4.4.3/bin/arm-none-linux-gnueabi-gcc CXX=/usr/local/arm_4.4.3/bin/arm-none-linux-gnueabi-g ++-with-apr=/root /-apr-1libmxmlライブラリのインストール
次のコマンドを実行して、libmxmlパッケージを解凍します。
tar zvxf libmxml-0.9.1.tar.gz次のコマンドを実行して、指定したディレクトリにアクセスします。
cd libmxml-0.9.1/次のコマンドを実行して、libmxmlディレクトリを作成します。
mkdir /root/libmxml次のコマンドを実行して、libmxmlライブラリをインストールします。
. /configure -- prefix=/root/libmxml -- host=arm-none-linux CC=/usr/local/arm_4.4.3/bin/arm-none-linux-gnueabi-gcc CXX=/usr/local/arm_4.4.3/bin/arm-none-linux-gnueabi-g ++
OSS SDK for Cのインストール
次のコマンドを実行して、OSS SDK for Cのインストールパッケージを解凍します。
tar zvxf aliyun-oss-c-sdk-3.5.0.tar.gz次のコマンドを実行して、指定したディレクトリにアクセスします。
cd aliyun-oss-c-sdk-3.5.0CMakeList.txtファイルを変更し、ファイルの先頭にクロスコンパイラのパスを追加します。

apr-1およびAPR-util設定の検索パスを変更します。

oss_c_sdk_testおよびoss_c_sdk_sampleディレクトリに移動し、次のCMakeList.txtファイルを変更します。

次のインストールコマンドを実行します。
cmake。 -DCMAKE_INSTALL_PREFIX=/root /oss_AP_c_sdk-DCURL_INCLUDE_DIR=/root/curl/include/ -DCURL_LIBRARY=/root/curl/lib/libcurl.a -DAPR_INCLUDE_DIR=/BRA_apr-1 /-apr-1 /DLIUTIIR-DRI /DMINIXML_INCLUDE_DIR=/root/libmxml/include/ -DMINIXML_LIBRARY=/root/libmxml/lib/libmxml.a -DPTHREAD_LIBRARY=/usr/local/arm_4.4.3/arm-none-libarm-libarm /BRA_LIgry /4.3-local /-DRT_LIBRARY=/usr/local/arm_4.4.3/arm-none-linux-gnueabi/sys-root/usr/lib/librt.a説明注: 前のスクリーンショットのいくつかのサードパーティライブラリのクロスコンパイラおよびインストールパスは、このコマンドで実行されます。 システムライブラリパスは、クロスコンパイラのシステムライブラリパスも参照する必要があります。
次のコマンドを実行して、OSS SDK for Cをコンパイルします。
作る
するインストールする きれいに
サポート対象スコープ
OSS