0

x86_64 RHEL マシン (CentOS 6.4) で、並列マルチコア プラットフォームをターゲットとするアプリケーションをコンパイルするためのIntel CilkPlus (v4.9) モジュールを使用して GCC コンパイラをコンパイルしようとしています。

インストールについては、 GNU GCC Docに従っています。これは、CilkPlus 拡張機能を備えた GCC と非常によく似ています。私は特に、前述のドキュメントの前提条件構成のセクションに十分な注意を払うことに重点を置いていました。

1) ダウンロード

手順ページで指定されているように、このスナップショットを使用して必要なものをすべてダウンロードしました。ダウンロードは成功し、tar も解凍されました。フォルダの名前を として変更し、ディレクトリの下に置きました。cilkplus-gcc$HOME

また、別のディレクトリを作成しました。$HOME/b-gccここから、コマンドを実行してからconfigureコマンドを実行しmakeます。これにより、同じディレクトリにインストールすることができなくなります (すべてを別のディレクトリに構築することを奨励するこの手順にとって望ましくないことです)。

2) 初期設定

ドキュメントで指定されているように$HOME/cilkplus-gcc/contrib、インストール プロセス (つまり、GCC のコンパイル) に必要な 3 つの最も重要なライブラリをビルドするために、ディレクトリに移動しました。

  • GMP:$HOME/cilkplus-gcc/contrib/gmp-4.3.2ディレクトリにあります。
  • MPFR:$HOME/cilkplus-gcc/contrib/mpfr-2.4.2ディレクトリにあります。
  • MPC:$HOME/cilkplus-gcc/contrib/mpc-0.8.1ディレクトリにあります。

MPFR は GMP に依存し、MPC は GMP と MPFR の両方に依存するため、出現順にビルドします。必要なすべてのファイルをディレクトリに配置したかった$HOME/cilkplus-gccので、これらのライブラリのインストーラーにすべてを$HOME/cilkplus-gcc/contrib/tmpディレクトリに配置するように指示しました。そう:

sudo $HOME/cilkplus-gcc/contrib/gmp-4.3.2/configure --enable-shared --enable-static --prefix=$HOME/cilkplus-gcc/contrib/tmp
sudo $HOME/cilkplus-gcc/contrib/mpfr-2.4.2/configure --enable-shared --enable-static --prefix=$HOME/cilkplus-gcc/contrib/tmp --with-gmp=$HOME/cilkplus-gcc/contrib/tmp
sudo $HOME/cilkplus-gcc/contrib/mpc-0.8.1/configure --enable-shared --enable-static --prefix=$HOME/cilkplus-gcc/contrib/tmp --with-gmp=$HOME/cilkplus-gcc/contrib/tmp --with-mpfr=$HOME/cilkplus-gcc/contrib/tmp

直接の結果として、私のディレクトリはディレクトリ、、およびそれらの 3 つのライブラリで$HOME/cilkplus-gcc/contrib/tmp満たされています。libincludesharebin

3) インストール

すべてをコンパイルするのに忙しくなります。ディレクトリに移動し、$HOME/b-gccそこから次のコマンドを発行します。

sudo $HOME/cilkplus-gcc/configure --prefix=$HOME/cilkplus-install --enable-languages="c,c++" --with-gmp=$HOME/cilkplus-gcc/contrib/tmp/ --with-mpfr=$HOME/cilkplus-gcc/contrib/tmp/ --with-mpc=$HOME/cilkplus-gcc/contrib/tmp/

構成はスムーズに進み、現在のフォルダー ( ) に make が作成されます$HOME/b-gcc。作成する時間と私が発行する時間: sudo make.

2分でこのエラーが発生します

g++ -c -g -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wwrite-strings -Wcast-qual -fno-common -DHAVE_CONFIG_H -I. -Ic-family -I/home/andry/cilkplus-gcc/gcc -I/home/andry/cilkplus-gcc/gcc/c-family -I/home/andry/cilkplus-gcc/gcc/../include - I/home/andry/cilkplus-gcc/gcc/../libcpp/include -I/home/andry/cilkplus-gcc/contrib/tmp//include -I/home/andry/cilkplus-gcc/contrib/tmp/ /include -I/home/andry/cilkplus-gcc/contrib/tmp//include -I/home/andry/cilkplus-gcc/gcc/../libdecnumber -I/home/andry/cilkplus-gcc/gcc/. ./libdecnumber/bid -I../libdecnumber -I/home/andry/cilkplus-gcc/gcc/../libbacktrace /home/andry/cilkplus-gcc/gcc/c-family/cppspec.c -o c-ファミリー/cppspec.3 : * [specs] エラー 127 make 3 : ディレクトリ /home/andry/b-gcc/gcc' make[2]: *** [all-stage1-gcc] Error 2 make[2]: Leaving directory/home/andry/b-gcc を離れます make 1 : * [stage1-bubble] エラー 2 make 1 : ディレクトリ `/home/andry/b-gcc' を離れます

しかし、/usr/local/libフォルダーを確認すると、そこにあることがはっきりとわかりますlibiconv.so.2! -liconvしたがって、インストール手順(つまり、GCCコンパイル自体)がライブラリを見つけることができないことを理解しています(フラグが表示されているため、明確に参照されています)。したがって、すべてを削除して、変更したコマンド$HOME/b-gccを発行します。configure

sudo $HOME/cilkplus-gcc/configure --prefix=$HOME/cilkplus-install --enable-languages="c,c++" --with-gmp=$HOME/cilkplus-gcc/contrib/tmp/ --with-mpfr=$HOME/cilkplus-gcc/contrib/tmp/ --with-mpc=$HOME/cilkplus-gcc/contrib/tmp/ --with-stage1-ldflags=-L/usr/local/lib

再度発行sudo makeすると、以前のエラーは発生しなくなり、時間が経過します。5/6 分後、次のエラーが表示されます。

x86_64-unknown-linux-gnu-ar をチェックしています... ar x86_64-unknown-linux-gnu-lipo をチェックしています... リポ x86_64-unknown-linux-gnu-nm をチェックしています... /home/andry/b -gcc/./gcc/nm x86_64-unknown-linux-gnu-ranlib をチェックしています... ranlib x86_64-unknown-linux-gnu-strip をチェックしています... ストリップ ln -s が機能するかどうかをチェックしています... はい、チェックしていますx86_64-unknown-linux-gnu-gcc... /home/andry/b-gcc/./gcc/xgcc -B/home/andry/b-gcc/./gcc/ -B/home/andry/cilkplus- install/x86_64-unknown-linux-gnu/bin/ -B/home/andry/cilkplus-install/x86_64-unknown-linux-gnu/lib/ -isystem /home/andry/cilkplus-install/x86_64-unknown-linux- gnu/include -isystem /home/andry/cilkplus-install/x86_64-unknown-linux-gnu/sys-include
オブジェクト ファイルのサフィックスをチェックしています... 詳細については、config.log で構成: エラー: を /home/andry/b-gcc/x86_64-unknown-linux-gnu/libgcc': configure: error: cannot compute suffix of object files: cannot compile See 参照してください。2を作る: * [configure-stage1-target-libgcc] エラー 1 make 2 : ディレクトリ /home/andry/b-gcc' make[1]: *** [stage1-bubble] Error 2 make[1]: Leaving directory/home/andry/b-gcc を離れています'

まあ、かなり奇妙なものです...だから私はチェック$HOME/b-gcc/x86_64-unknown-linux-gnu/libgcc/config.logしました(関連する抜粋を表示します):

-isystem /home/andry/cilkplus-install/x86_64-unknown-linux-gnu/sys-include
-c -g -O2 conftest.c >&5 /home/andry/b-gcc/./gcc/cc1: エラー中共有ライブラリを読み込んでいます: libmpc.so.2: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません configure:3593: $? = 1 構成: 失敗したプログラムは: | /* confdefs.h */ | #define PACKAGE_NAME "GNU C ランタイム ライブラリ" | #define PACKAGE_TARNAME "libgcc" | #定義 PACKAGE_VERSION "1.0" | #define PACKAGE_STRING "GNU C ランタイム ライブラリ 1.0" | #定義 PACKAGE_BUGREPORT "" | #define PACKAGE_URL " http://www.gnu.org/software/libgcc/ " | /* confdefs.h を終了します。*/ | | | 整数 | メイン () | { | | | ; | | 0 を返します。| | } configure:3607: エラー: /home/andry/b-gcc/x86_64-unknown-linux-gnu/libgcc': configure:3610: error: cannot compute suffix of object files: cannot compile See詳しくは config.log を参照してください。

エラーは基本的に次のとおりです。

/home/andry/b-gcc/./gcc/cc1: 共有ライブラリの読み込み中にエラーが発生しました: libmpc.so.2: 共有オブジェクト ファイルを開けません: そのようなファイルやディレクトリはありません

しかし、私はすでに(構成中に)検索に行くように言いませんでしlibmpc.so.2$HOME/cilkplus-gcc/contrib/tmpか???

どうすれば物事を成し遂げることができますか?

どうすればこれを乗り越えることができますか? ありがとうございました

4

1 に答える 1

0

**

http://gcc.gnu.org/git/?p=gcc.git;a=shortlog;h=refs/heads/cilkplus-4_8-branchから cilkplus ブランチのスナップショットをダウンロードし、チェックインのリストの一番上の行。サーバーがソースを取得し、圧縮された tarfile を構築するのに少し時間がかかります。圧縮された tarfile がダウンロードされたら、ディレクトリ /home に配置した後、次のコマンドを使用して展開します。

cd /home
tar -xf gcc-3cfca5e.tar.gz

これにより、ディレクトリ gcc-3cfca5e が作成されます。最新の mpfr、mpc、および gmp をダウンロードし、これらの tarball を gcc-3fca5e ディレクトリに配置します。

cd /home/gcc-3cfca5e
tar -jxvf mpfr-3.1.2.tar.bz2
tar -xzvf mpc-1.0.1.tar.gz
tar -vxjf gmp-5.1.3.tar.bz2
ln -sf mpfr-3.1.2  mpfr
ln -sf mpc-1.0.1 mpc
ln -sf gmp-5.1.3  gmp

cd /home
mkdir gcc-cilk-obj
mkdir gcc-cilk

cd /home/gcc-cilk-obj

../gcc-3cfca5e/configure  --prefix=/home/gcc-cilk  --disable-multilib  -enable-languages=c

make
make install

============ VirtualBox 4 内で最新の Slackware を実行しているコア 2 デュオ (VBox 設定 > システム > プロセッサ > PAE を有効にする) を Windows 7 プロフェッショナルにするのに約 4 時間かかりました。私の Linux システムには autogen がありませんでしたが、それでも機能しました。

于 2013-10-15T00:15:06.440 に答える