インストール時の問題とご質問 FAQ

 本ページは、PGIコンパイラを使用して、インストール時の問題等に関する FAQ のページです。
© 株式会社ソフテック

インストール時の問題とご質問 FAQ

  1. PGI コンパイラをインストールしようとするシステムには、gcc、gfortran など GNU コンパイラを先にインストールしている必要がありますか
  2. 最新バージョンだけでなく、過去のバージョンも同時にインストールして各々動作しますか
  3. PGI Linux / Mac OS 用の bash または、csh 環境において環境変数の設定の方法を教えてください
  4. PGI コンパイラでテストプログラムをコンパイルした際、 次のようなメッセージ cannot open ./crtbegin.o が出てコンパイルできません
  5. コンパイラのソフトウェアが正常にインストールされたか、確認する方法はありますか
  6. PGI コンパイラでテストプログラムをコンパイルした際、 Permission denied のメッセージでコンパイルできません
  7. PGI コンパイラで作成した実行バイナリを実行したら、 EXECUTABLE EXPIRED と言うメッセージが出て実行できません
  8. PGI コンパイラのバージョンアップの方法を教えてください
  9. PGI の旧バージョンと新リリースのバージョンを使い分けたいのですが、方法を教えてください
  10. PCクラスタ上に、PGI コンパイラをインストールする際の推奨方法を教えてください
  11. 現在、PGI 5.1 バージョンを使用していますが、下位のバージョン PGI 4.1-2 も使用したい場合のインストール並びに設定の方法を教えてください
  12. 64ビット Opteron マシンの Linux OS として Fedora Core 3 を使用しましたが、PGI 5.1/5.2 は動作しません。回避方法を教えてください
  13. Gaussian 用のコンパイラとして PGI が指定されているのですが、そのソフトウェアの入手方法を教えてください
  14. RedHat Enterprise Linux (AMD64/EM64T)上で 32ビットのコンパイラ環境が構築されていません
  15. Gaussian03 Rev. C02 用のコンパイラとして PGI 5.1-6 が指定されています。SUSE 10.0 等(GCC 4.0以降)の Linux上で、このバージョンをインストールできません。正しくインストールする方法を教えてください
  16. SUSE 10.0/10.1 等(GCC 4.0以降)の Linux上で、PGI 5.2-4 バージョンをインストールできません。正しくインストールする方法を教えてください
  17. SUSE 10.2、Fedora Core 6等(glibc 2.5以降)のLinux上で、PGI 6.2 バージョンをインストールできません。正しくインストールする方法を教えてください
  18. SUSE 10.2、Fedora Core 6等(glibc 2.5以降)のLinux上で、PGI 6.1 バージョンをインストールできません。正しくインストールする方法を教えてください。
  19. PGI 6.1以降のコンパイラ を OpenSUSE10.0/10.1/10.2/10.3/11 上でインストールしたいのですが、この distribution には GNU の Fortran パッケージが含まれていません。これをインストールする方法がありますか
  20. PGIソフトウェアを Fedora/Cent OS/ Red Hat Enterprise Linux (64bit) 上でインストールしたいのですが、この distribution では 32bit 互換の GNU g77 あるいは gfortran がデフォルトでインストールされません。これをインストールする方法がありますか? (PGI のバージョンに限らず、Fedora/Cent OS/ Red Hat Enterprise Linux 上での対処法)
  21. 64ビット版 Red Hat 6.0 (CentOS 6.0, Scientific Linux 6.0と Fedora) 以降のシステム上でインストールする際に必要とされる GNU のパッケージ(gcc,gfortran,glibc等)の実装状況の確認方法、あるいはインストールの方法を教えて下さい。
  22. Ubuntu システム上で PGI をインストールする際に必要とされる GNU のパッケージ(gcc,gfortran,glibc等)のインストールの方法を教えて下さい
  23. Ubuntu 11.10 システム上で PGI 12.1 をインストールした環境で、リンク時に以下のような不具合が出ます。この対処法を教えて下さい。 /usr/bin/ld: cannot find /usr/lib64/crt1.o: No such file or directory
  24. OS X 10.7(Lion)の Xcode 4.3.1 (2012年3月リリース)以降を導入した際に、PGIコンパイラをインストールする際の注意点を教えてください
  25. OS X 上でXcode 開発環境が実装されているかどうかの確認方法を教えてください
  26. SUSE、OpenSUSEのシステム上でインストールする際に必要とされる GNU のパッケージ(gcc,gfortran,glibc等)の実装状況の確認方法、あるいはインストールの方法を教えて下さい
  27. PGI 2013(PGI13.x) の Windows 版において事前に実装しておくべき、Microsoft(R)の Windows 8 SDK ソフトウェアについて教えてください
  28. PGI 2014(PGI14.x)、PGI 2015(PGI 15.x) の Windows 版において事前に実装しておくべき、Microsoft(R)の Windows 8.1 SDK ソフトウェアについて教えてください
  29. 64ビット版 Red Hat 7 (CentOS 7, Scientific Linux 7)、Fedora 21以降のシステム上でインストールする際に必要とされる GNU のパッケージ(gcc,gfortran,glibc等)のインストールの方法を教えて下さい。
  30. PGI 2016(PGI16.x) の Windows 版において事前にインストールしておくべき、Microsoft のソフトウェアについて教えてください。
  31. PGI の Windows 版において事前にインストールしておくべき、Microsoft のソフトウェアについて教えてください。
  32. PGI 18.10 ~ 19.10 の Windows用コマンドライン・コンパイラには、事前に Microsoft Visual Studio 2017 のインストールが必要ですが、そのインストールの方法を教えて下さい。
  33. PGI 20.1 以降の Windows用コマンドライン・コンパイラには、事前に Microsoft Visual Studio 2017 あるいは 2019 のインストールが必要ですが、そのインストールの方法を教えて下さい。
 

インストール時の問題とご質問への回答

Question  1. PGI コンパイラをインストールしようとするシステムには、gcc、gfortran など GNU コンパイラを先にインストールしている必要がありますか

Answer

(2012 年 2 月 13 日更新)
(2007年 4 月 18 日更新)
システムには、gccgcc-c++gcc-fortran (もしくは gcc-g77) の GNU GCC 開発環境用のパッケージのライブラリがインストールされている必要があります。これらのパッケージがインストールされていない場合は、PGI コンパイラのインストール前に、インストールを行って下さい(不足しているアプリケーションがある場合、PGI コンパイラのインストール時にエラー表示されます)。64bit 環境の場合は、64bit用の GNU gcc/gcc-fortran 環境が必要です。なお、64bit Linux上で、32bit 用のクロスコンパイル環境も含めて構築したい場合は、32ビット対応の GNU gcc/gcc-fortran の開発環境も実装されている必要があります。32ビット環境がこれらのパッケージの名称は、distiribution によって異なりますのでご注意ください。 RedHat/Fedora Core においては gcc-gfortran と称しています。

GCC 4.0 以降では、 gcc-g77 プロジェクトが凍結されましたので、distribution の中に含まれない場合があります。その場合は、gcc-fortran パッケージを入れて下さい。今後は、gcc-fortran に統一されることとなるでしょう。

rpm -qa コマンド等で、インストールされているシステム・ソフトウェアをご確認ください。以下の例は、64ビットの Linux 上の GNU GCC 関係のパッケージと32ビット互換(compat-**)系のパッケージを表示したものです。 GCC3.x、GCC4.0 を有する Linux distribution では、32ビット対応の GNU GCC パッケージ名が区別されておりましたが、以下の SUSE 10.1 の例のように、GCC 4.1 においては、たとえば gcc-fortran-32bit と言った 32ビット対応のパッケージ名が現れておりません。しかし、SUSE 10.1では、gcc-fortran-4.1.0-25 の表示であっても、実際は32ビット環境が内在しております。なお、現在の distribution では、g77系のソフトウェアは含まれていませんので、Fortran系に関しては、 gcc-fortran パッケージをシステムにインストールすることで代替するようにしてください。

(コマンドヒント) パッケージのアーキテクチャ名も表示させたい場合
# rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' gcc gcc-c++ gcc-gfortran glibc
gcc-4.1.1-52.el5 (x86_64)
gcc-c++-4.1.1-52.el5 (x86_64)
gcc-gfortran-4.1.1-52.el5 (x86_64)
glibc-2.5-12 (i686)
glibc-2.5-12 (x86_64)

RedHat Enterprise Linux 6.1 (64bit) SUSE Linux 10.0 (64bit)
古いタイプのLinuxの場合の構成
SUSE Linux 10.1 (64bit)
古いタイプのLinuxの場合の構成
# uname -a
Linux photon29 2.6.32-131.12.1.el6.x86_64

# rpm -qa | grep gcc
gcc-c++-4.4.5-6.el6.x86_64
libgcc-4.4.5-6.el6.x86_64
libgcc-4.4.5-6.el6.i686 (32bit)
gcc-gfortran-4.4.5-6.el6.x86_64
gcc-4.4.5-6.el6.x86_64


※現在の gnu コンパイラは、32ビット版と64ビット版は、一体化しており、コマンドオプションで切り替えている(-m32/-m64)。従って、32ビット用のパッケージは見えない。
# uname -a
Linux photon27 2.6.13-15-smp

# rpm -qa | grep gcc
gcc-4.0.2_20050901-3
gcc-c++-4.0.2_20050901-3
gcc-fortran-4.0.2_20050901-3
gcc-32bit-4.0.2_20050901-3
libgcc-4.0.2_20050901-3
gcc-info-4.0.2_20050901-3
gcc-fortran-32bit-4.0.2_20050901-3
gcc-java-4.0.2_20050901-3

# rpm -qa | grep compat
compat-g77-3.3.5-2
compat-libstdc++-5.0.7-6
compat-2004.11.13-4
compat-32bit-2004.11.13-4
compat-curl2-32bit-7.11.0-7
compat-curl2-7.11.0-7
# uname -a
Linux photon28 2.6.16.13-4-smp

# rpm -qa | grep gcc
gcc-info-4.1.0-25
libgcc-4.1.0-25
gcc-locale-4.1.0-25
gcc-java-4.1.0-25
gcc-fortran-4.1.0-25
gcc-4.1.0-25
gcc-c++-4.1.0-25

# rpm -qa | grep compat
compat-openssl097g-32bit-0.9.7g-11
compat-libstdc++-5.0.7-21
compat-g77-3.3.5-17
compat-curl2-7.11.0-18
compat-openssl097g-0.9.7g-11
compat-curl2-32bit-7.11.0-18
compat-32bit-2006.1.25-9
compat-2006.1.25-9
java-1_4_2-gcj-compat-1.4.2.0-33

 
上記のようなパッケージ名だけの確認だけでは不安な場合、実際のコマンドで確認して見ることです( x86_64 の場合)。以下は、64ビット Linux上で、32ビットの gcc/gcc-fortran 環境が実装されているか、64ビットの gcc/gcc-fortran 環境が実装されているかを確認するための方法を例示したものです。以下のように 32ビット 並びに 64 ビット環境の GCC/gfortran コンパイルがうまく動作するならば、PGI のインストール環境としては問題ないということが言えます。
(注意) gcc や gfortran の32ビット用の各 Linux distributions 上でのパッケージ名称は、頻繁に変更されます。従って、ここで説明している名称は、あくまでも一例とお考えください。64ビットLinux の場合の 大事なポイントは、32ビット用のクロスコンパイル環境が必要な場合に限り、gcc も gfortran も32bit互換のパッケージ(機能)とそれに付随する glibc(libgcc) パッケージを入れておく必要があると言うことです。

$ uname -a
Linux photon28 2.6.16.13-4-smp #1 SMP Wed May 3 04:53:23 UTC 2006 x86_64 x86_64 x86_64 GNU/Linux

gccを使用し、32bit / 64bitのライブラリ環境が存在するか、確認の方法を説明します。

$ cat hello.c
main()
{printf("hello\n");}

$ gcc -m32 hello.c -o a.out   (32bit環境コンパイル -m32 オプションで生成できるか?)
hello.c: In function 'main':
hello.c:2: warning: incompatible implicit declaration of built-in function 'printf

$ file a.out (32bit モジュールで確かに生成されている ==> 32bit環境、問題なし)
a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), 
for GNU/Linux 2.6.4, dynamically linked (uses shared libs), for GNU/Linux 2.6.4, not stripped
$ ./a.out
hello

$ gcc hello.c -o a.out   (64ビット環境コンパイル デフォルト)
hello.c: In function 'main':
hello.c:2: warning: incompatible implicit declaration of built-in function 'printf

$ file a.out (64bit モジュールで確かに生成されている ==> 64bit環境、問題なし)
a.out: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), 
for GNU/Linux 2.6.4, dynamically linked (uses shared libs), for GNU/Linux 2.6.4, not stripped
$ ./a.out
hello

-----------------------------------------------------------------------

次に PGI Fortran に必要な GCC Fortran ライブラリ環境(32bit/64bit) が存在するか、
gcc-fortran の環境を使用して確認の方法を説明します。

$ cat hello-f.f
       print *,"Hello from Fortran"
       end

$ gfortran -m32 hello-f.f   (32bit環境コンパイル -m32 オプションで生成できるか?)

$ file a.out   (32bit モジュールで確かに生成されている ==> 32bit環境、問題なし)
a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), 
for GNU/Linux 2.6.4, dynamically linked (uses shared libs), for GNU/Linux 2.6.4, not stripped

$ a.out
Hello form Fortran

$ gfortran hello-f.f   (64bit環境コンパイル デフォルト)

$ file a.out   (64bit モジュールで確かに生成されている ==> 64bit環境、問題なし)
a.out: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), 
for GNU/Linux 2.6.4, dynamically linked (uses shared libs), for GNU/Linux 2.6.4, not stripped

$ a.out
Hello from Fortran

------------------- gfortran の替わりに g77 環境でもよい(古い Linux distribtionsの場合) -------

$ g77 -m32 hello-f.f
$ file a.out
a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), 
for GNU/Linux 2.6.4, dynamically linked (uses shared libs), for GNU/L
inux 2.6.4, not stripped

$ g77 hello-f.f
$ file a.out
a.out: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), 
for GNU/Linux 2.6.4, dynamically linked (uses shared libs), for GNU/Linux 2.6.4, not stripped

(補足情報)

Question  1-1 最新バージョンだけでなく、過去のバージョンも同時にインストールして各々動作しますか

Answer

最新バージョンのライセンス・キーを設定することにより、それ以前の過去のバージョンも含めて、コンパイラ・ソフトウェアを並行に使用することが可能です。これに関連する「ライセンス・キー」の説明は、こちらの記事で説明しております。また、複数のバージョンのソフトウェアをインストールしても、バージョンごとにインストール場所が管理されておりますので、上書きされません。さて、実際に複数のバージョンをインストールする際に必要な留意事項を以下に説明します。以下の内容は、PGI 5.2 以降のバージョンに対して対応します。なお、PGI 5.1 以前のバージョンの場合、PGI ソフトウェアがインストールされるディレクトリ構造が異なりますので、弊社までお問合せください(この場合のFAQは、以下の記事の #10 にもございます)。

(重要な変更点 2015/2月)
PGI 2015(15.1) 以降にバンドルされたFlexNet ライセンスマネージャ(lmgrd/pgrpud) と PGI 2015 時点で取得(更新、新規を問わず)した license.dat を使用した場合、過去の PGI 7.2 バージョン以降のソフトウェアが使用可能なライセンス管理環境を構築出来ます。PGI 2014 以前にバンドルされた FlexNet ライセンスマネージャでは、過去の PGI 5.2 までのソフトウェアを同一ライセンスマネージャで管理出来ましたが、PGI 2015以降では、PGI 7.1 以前のソフトウェアは使用出来なくなりました

PGI コンパイラのソフトウェアの各バージョンは、そのソフトウェア実装上、各バージョン番号名となる「サブ・ディレクトリ」で管理されます。一般に、PGI コンパイラをインストールする際に、インストーラは「どこにインストールしますか?」と言う設問を表示します。ここでは、これを「インストールするルート・ディレクトリ」と言い、このルート・ディレクトリはインストーラのデフォルトでは、/usr/pgi (PGI 6.1以前の場合)、/opt/pgi (PGI6.2以降の場合)のどちらかとなっています(明示的に他の異なる場所を指定することもできます)。この配下に、PGIソフトウェアの各バージョン(リビジョン)がインストールされております。
実装後のディレクトリ構造は、以下のようになっております。(ここでは、ルート・ディレクトリを /opt/pgi とします)

 /opt/pgi/linux86-64   (64bit 用のコンパイラソフトウェア)

さらに、上記のディレクトリの配下には、PGI のバージョン(リビジョン)番号名のサブ・ディレクトリが作成されます。例えば、Linux 上で、PGI 19.1 をインストールした後に、過去のリビジョン 18.8、17.10 の二つをインストールした場合は、以下のようなディレクトリ構造となります。過去のバージョンをインストールする際には、インストール・スクリプト実行時に尋ねられる「インストールするルート・ディレクトリ」を全て同じ/opt/pgi と指定してください。これで全てのバージョン(リビジョン)の実体ソフトウェアの配置が終了します。なお、以下の記述の中では、「総称バージョン名」の directory 名は省略しています。

(Linux 64bit用のコンパイラ実装環境)
/opt/pgi/linux86-64/19.1/
                   /18.7/  <--- 過去のバージョン
                   /17.10/   <--- 過去のバージョン

Linuxの場合と同様に、OS X版、Windows版においても、同じような実装形態となっています(使用しているリビジョン番号は一例です)。

(OS Xの場合の64bit用のコンパイラ実装環境)
/opt/pgi/osx86-64/19.1/
                 /18.7/   <--- 過去のバージョン
                 /17.10/    <--- 過去のバージョン

(Windowsの場合の64bit用のコンパイラ実装環境)
C:\Program files\PGI\win64\19.1
                          \18.7   <--- 過去のバージョン
                          \17.10    <--- 過去のバージョン   

さて、Linux上で上記の複数のバージョン・ソフトウェアをインストールする際の注意事項を述べます。(/opt/pgi にインストールすることを前提とします) (2018年2月補筆)

複数のPGIバージョンを追加インストールする際は、既存(正規)の license.dat のバックアップ・コピーを作成してから行ってください。PGI 9.0 以降は、既存の license.dat の上書きはしませんが、license.dat のバックアップは安全おため取っておいた方がよいでしょう。

  1. まず、最初に最新バージョンの PGI ソフトウェアをインストールすることを推奨します。
  2. 最新バージョン(ここでは、仮に 19.1 (2019) とする)のインストール後、正規ライセンスの取得とその license.dat を /opt/pgi 配下にセットしてください。
  3. その次に、FlexNet ライセンス管理マネージャ(lmgrd) 関連のセットアップをお願いします。以上の手続きは、標準的なPGIのインストール方法に従ってください。この段階で、PGI 19.1 が使用できる環境となります。
  4. 次に、過去のバージョンである例えば PGI 17.7 のソフトウェアをダウンロードして、インストーラでインストールしてください。その際に、「インストールするトップ・ディレクトリ」は、上記 PGI 19.1 をインストールした際と同じである /opt/pgi を指定してください。PGIソフトウェアのコピーが終わると、Do you wish to update/create links in the 2017 directory? (y/n)の問いがありますので、これは一般的には y としてください。(個別 revision directory を総称 directory にリンクするかどうかの問いです。総称 directoryにシンボリックリンクするかどうかは適宜判断して結構です。)
  5. 最後に、「Do you wish to generate license keys or configure license service? (y/n) ライセンスを発行しますか?」と言うインストーラからの設問に対しては、「N」としてください。今使用しているライセンスキーは、過去のバージョンに対して互換性がありますので、再取得、あるいは生成する必要がありません。なお、その後の FlexNet ライセンス管理マネージャ等の設定は必要ありません。即ちライセンス管理マネージャも現在稼働している環境の中で、過去のバージョンが使用できます。これで、過去のバージョンのソフトウェアのインストールは終了します。
  6. まだ、他のバージョンソフトウェアがある場合は、上記 4、5 の作業を繰り返します。

(デフォルトとしたいバージョン、リビジョンの明示的な設定方法)
ユーザ環境の PGI 用の PATH 環境変数の設定は、最新のリビジョンのディレクトリ・パスを定義することを推奨します。正確に言えば、ここで、デフォルトのコンパイラ・バージョンのディレクトリ・パスを設定すると言うことになります。 例えば、過去の 17.7 をデフォルト・バージョンとした場合は、以下のように、環境変数 PATH (path) の設定では、17.7 と言うディレクトリ配下の bin (コンパイラコマンドが含まれる)が設定されます。例えば、デフォルトのバージョンを 16.5 にしたい場合は、17.7 を 16.5 を設定してください。このように設定したとしても、過去あるいは、上位のバージョンは以下に述べる方法で利用することができます。
なお、このように個別の「リビジョン番号」をパスに指定する方法の他、次の FAQ 2で説明する「総称バージョン名で指定することもできます。この場合は、当該デフォルトとして使用したい「メジャー・バージョン」の中で、実装済みの最新のリビジョンを参照できる PATH の設定法となります。

(64bit Linuxの場合)
csh または、tcsh の場合、$HOME/.cshrc 等に以下のような記述を加えて下さい。

 setenv PGI /opt/pgi (コンパイラの installation directoryを定義) 
 set path = ( $PGI/linux86-64/17.7/bin $path ) 
 setenv MANPATH “$MANPATH“:$PGI/linux86-64/17.7/man 
 setenv LM_LICENSE_FILE $PGI/license.dat 

sh または、bash の場合、$HOME/.bashrc 等に以下のような記述を加えて下さい。

 export PGI=/opt/pgi (コンパイラの installation directoryを定義) 
 export PATH=$PGI/linux86-64/17.7/bin:$PATH 
 export MANPATH=$MANPATH:$PGI/linux86-64/17.7/man 
 export LM_LICENSE_FILE=$PGI/license.dat

(過去のバージョンをコンパイラ・オプションの指定で利用する方法)

上記のような形で実装された環境では、PGI の過去のバージョンは、コンパイラオプション
-V{revision_number} をコマンドラインに追加することにより利用可能です。(もちろん、指定しようとする過去のバージョンは、実装されている必要があります)

 $ pgf95 -fastsse test.f     (デフォルトのバージョンが利用される)
 $ pgf95 -V18.3 -fastsse test.f (明示的に -V18.3 を付けることで、PGI 18.3 が利用される)
 $ pgf95 -V16.5 -fastsse test.f (明示的に -V16.5 を付けることで、PGI 16.5 が利用される)

(PGI 19.1 以降の注意点)

PGI 19.1 から、コンパイラのバックエンドシステム(コードジェネレータ)が LLVM コンパイラをデフォルトで使用します。以前のバージョンでは、PGI 独自のコードジェネレータを使用していました。この副作用により、PGI 19.1 以降のコンパイラから -V{version}(バージョン番号を指定してコンパイルする機能)を利用して過去のバージョンのドライバーを切り替えて利用することができません。PGI 19.1 以降では、過去のバージョンコンパイラを使用したい場合は、明示的に、上述した環境変数 PATH を所望の PGI バージョンに指定してください。

Question  2. PGI Linux / OS X 用の bash または、csh 環境において環境変数の設定の方法を教えてください)

Answer

PGI コンパイラのインストール並びにユーザ環境でのコンパイル・実行時に必要な環境変数の設定方法は、以下をご参考下さい。なお、環境変数 PGI は必ずご設定下さい。設定されない場合、ライセンスファイルを正常に認識できません。
ユーザ環境のシェル初期設定ファイル ($HOME/.bashrc等) に以下のような記述を行います。(“linux86-64/2020/” の 2020 の部分はソフトウェアのバージョン番号を表します) 以下の例は、64bit OS の場合のものです。
なお、PGI コンパイラの今までのバージョン名は、PGI 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 9.0, 8.0, 7.2, 7.1,... と言った番号となります。下記のパス名の「2020」の部分を当該使用しているバージョン名に変更して下さい。2015 や 2016 と言ったバージョン名は、「総称バージョン名」です。以下の例では、PATH 環境変数のパス名をこの総称バージョン名(「総称ディレクトリ」とも言う)で定義していますが、例えば、PGI 2017 と言うリリースの集合の中には、個別の実体リビジョンが存在し、17.1, 17.2 ... 17.10 までのリビジョンが存在します。2017 の代わりに、個別リビジョン名、例えば、17.2 と言った形で定義することも、もちろん可能です。「総称バージョン名」を PATH の定義に使用する利点は、「総称バージョン」配下の各ファイルは、既に実装されている PGI 2017 の各リビジョン・ソフトウェアの中で、最新のリビジョンの個別ファイルにシンボリック・リンクされているため、「総称バージョン名」を指定しておくと、いつも最新のリビジョンをデフォルトとして使えるような設定になることです。このような最新リンクへのタイアップは、PGIのバージョンアップ、リビジョンアップの際に自動的に行われております。(参考)PGIのバージョンとリビジョンの意味

(64bit Linux製品の場合)
csh または、tcsh の場合、$HOME/.cshrc 等に以下のような記述を加えて下さい。
(PGI 2020 の場合の例)

 setenv PGI /opt/pgi (コンパイラの installation directoryを定義) 
 set path = ( $PGI/linux86-64/2020/bin $path ) 
 setenv MANPATH “$MANPATH“:$PGI/linux86-64/2020/man 
 setenv LM_LICENSE_FILE $PGI/license.dat 

sh または、bash の場合、$HOME/.bashrc 等に以下のような記述を加えて下さい。

 export PGI=/opt/pgi (コンパイラの installation directoryを定義) 
 export PATH=$PGI/linux86-64/2020/bin:$PATH 
 export MANPATH=$MANPATH:$PGI/linux86-64/2020/man 
 export LM_LICENSE_FILE=$PGI/license.dat

OS X の場合は、「osx86-64」と言うパス名が採用されています。以下の例は、パス名の中に「総称バージョン名」を使用せず、内部リビジョン番号(PGI 2020 の場合は、19.x で、" x" は、リビジョン番号)でパスを指定する場合の例です。もちろん、上記の Linux の例の時と同じように「総称バージョン名」2019 と指定しても良いです。

(64bit OS X 製品の場合)= PGI 2019 で提供終了(終息)
csh または、tcsh の場合、$HOME/.cshrc 等に以下のような記述を加えて下さい。

 setenv PGI /opt/pgi (コンパイラの installation directoryを定義) 
 set path = ( $PGI/osx86-64/19.x/bin $path ) 
 setenv MANPATH “$MANPATH“:$PGI/osx86-64/19.x/man 
 setenv LM_LICENSE_FILE $PGI/license.dat 

sh または、bash の場合、$HOME/.bashrc 等に以下のような記述を加えて下さい。

 export PGI=/opt/pgi (コンパイラの installation directoryを定義) 
 export PATH=$PGI/osx86-64/19.x/bin:$PATH 
 export MANPATH=$MANPATH:$PGI/osx86-64/19.x/man 
 export LM_LICENSE_FILE=$PGI/license.dat

OS X 上での環境変数の設定は、ユーザ個々に $HOME/.bashrc 等に設定する方法と、全ユーザに対して反映できるように /etc/profile 内で設定する方法があります。/etc 配下のファイルを変更する場合は、システム管理権限が必要です。システム管理権限を有するユーザIDでログインした後、以下のようなシステム(root)権限でのコマンド実行モードでコマンド操作する必要があります。

tiger:/etc kato$ sudo -s
password:******
tiger:/etc root# vi profile   (root権限のコマンドモードに変更される)

 ログイン時のシェルが、ユーザ個々の $HOME/.bashrc を参照するようにするためには、
/etc/bashc ファイルの中に、以下のようなコマンドを追加しておく必要があります。

  test -r $HOME/.bashrc && . /$HOME/.bashrc 

Question  3. PGI コンパイラでテストプログラムをコンパイルした際、 次のようなメッセージ cannot open ./crtbegin.o が出てコンパイルできません

Answer

PGI コンパイラインストール時に英語モード以外でインストールを行っているのが原因です。 PGI コンパイラのインストールは、環境変数 LANG が英語モードの環境で行う必要があります。以下の例のように root ユーザ上で、環境変数 LANG を設定後、再度インストールを行って下さい。なお、環境変数 LANG は、設定したコンソールのみ有効ですので、同じコンソールにて PGI コンパイラのインストール(install コマンドの実行)を行なって下さい。

【エラーメッセージ】
 /usr/bin/ld: cannot open ./crtbegin.o: No such file or directory.
 (/usr/bin/ld: cannot open ./crtbegin.o: 
             そのようなファイルやディレクトリはありません)

【対処法】
sh、bash の場合
% export LANG=C(または、export LANG=en_US)
% export LC_ALL=C (Ubuntu Linuxの場合はこの変数もセットすること)
% cd /tmp/pgi  (PGIコンパイラ tarファイル等を展開したディレクトリに移動)
% ./install

csh、tcsh の場合
% setenv LANG C(または、setenv LANG en_US)
% setenv LC_ALL C (Ubuntu Linuxの場合はこの変数もセットすること)
% cd /tmp/pgi  (PGIコンパイラ tarファイル等を展開したディレクトリに移動)
% ./install

 LANG 以外の環境変数で、LC_MESSAGES、LC_CTYPE 等も ja_JP に設定されている場合は、
 これらの環境変数も "C"(あるいは、en_US) に設定してください。

【具体的な修復法】

 これを修復するには、再度、PGI ソフトウェアのインストールのみ行っていただく必要が
あります。実施することは、PGIソフトウェアの上書きインストールのみで、FlexNet の設定等は、
現状のままで問題ありません。

1.現在の取得 license.dat のバックアップをとる。

$ cd /usr/pgi
$ cp license.dat license.dat.back

2.PGIソフトウェア(linux86-64.tar.gz)を /tmp/PGI(一例)の配下に展
  開。(/tmp上にlinux86-64.tar.gzがあるものと想定)
 
$ cd /tmp
$ mkdir PGI
$ cd PGI
$ tar zxvf ../linux86-64.tar.gz

3.一時的にインストールのために、シェルの言語環境変数を英語に設定(ルート権限)

$ export LANG=C(または、export LANG=en_US)
$ export LC_ALL=C (Ubuntu の場合は、これもセット))

※LANG 以外の環境変数で、LC_MESSAGES、LC_CTYPE 等も ja_JP に設定されている場合は、
 これらの環境変数も "C"(あるいは、en_US) に設定してください。これらが何も設定されて
 いない場合は、LANG のみ変更してください。

4./tmp/PGI 上の ./install を実行

$ ./install

設問に答える。インストールするディレクトリを聞かれるので、前と同
 じところ(デフォルトは /usr/pgi) に指定する(上書きする)

 最後まで設問に答えて、インストールを終了する。

5.正規ライセンスを戻す
$ cd /usr/pgi
$ cp license.dat.back license.dat

以上で上書きインストールが終了します。FlexNet ライセンスマネージャ
は、何もしなくて結構です。

Question  4. コンパイラのソフトウェアが正常にインストールされたか、確認する方法はありますか

Answer

"-dryrun -V" オプションを使って、リリースナンバーおよびコンパイルシーケンスの確認ができます。但し、この確認方法は、PGIソフトウェアの実装が正常に行われたかどうかのものであり、license.dat 並びに FlexNet ライセンスマネージャーが正常に機能しているかどうかまでは確認できません。

Fortran 77 Compilerの場合:  pgf77 -dryrun -V x.f
Fortran 2003 Compilerの場合:  pgfortran -dryrun -V x.f
C++ Compilerの場合       :  pgc++ -dryrun -V x.c
C Compilerの場合         :  pgcc -dryrun -V x.c

これらのコマンドを実行するために、x.f ファイルや x.c ファイルは、存在しなくても構いません。この場合は、Reading rcfile C:\PROGRA~1\PGI\win32\11.8\bin\pgcc_rc 等のメッセージが出ますが、エラーではありません。但し、その他の何らかのエラーメッセージが表示された場合、ライセンスファイルおよび環境変数等の設定に誤りがないか再度ご確認下さい。上記オプションで実行すると以下のようなメッセージが出力されます。この中で、"not found" がありますが、これは正常なメッセージですので、ご安心ください。正常にPGI コンパイラはインストールされており、ライセンスの設定も問題ありません。なお、 -dryrun オプションを付けてコンパイルした場合は、実行モジュール(a.out) は生成されませんのでご注意ください。

(以下は、Linux 64bit 上での例)
$ pgcc -V -dryrun x.c
Reading rcfile /usr/pgi/linux86-64/15.1/bin/.pgccrc
Reading rcfile /usr/pgi/linux86-64/15.1/bin/nativerc
Reading rcfile /usr/pgi/linux86-64/15.1/bin/fnativerc
Reading rcfile /usr/pgi/linux86-64/15.1/bin/ccrc
Reading rcfile /usr/pgi/linux86-64/15.1/bin/x86rc
Reading rcfile /usr/pgi/linux86-64/15.1/bin/x8664rc
Reading rcfile /usr/pgi/linux86-64/15.1/bin/lin86rc
Reading rcfile /usr/pgi/linux86-64/15.1/bin/lin8664rc
Reading rcfile /usr/pgi/linux86-64/15.1/bin/iparc
Reading rcfile /usr/pgi/linux86-64/15.1/bin/acc1rc
Reading rcfile /usr/pgi/linux86-64/15.1/bin/acclin8664rc
Reading rcfile /usr/pgi/linux86-64/15.1/bin/localrc
Skipping localrc.photon30 (not found)
Skipping siterc (not found)
Skipping siterc.photon30 (not found)
Skipping .mypgirc (not found)
Skipping .mypgccrc (not found)

pgcc 15.1-0 64-bit target on x86-64 Linux -tp sandybridge
The Portland Group - PGI Compilers and Tools
Copyright (c) 2015, NVIDIA CORPORATION.  All rights reserved.
Export PGI=/usr/pgi

/usr/pgi/linux86-64/15.1/bin/pgc x.c -opt 1 -version -terse 1 -inform warn -x (中略)-asm x.s

/bin/as x.s -o x.o

/bin/ld /usr/lib64/crt1.o /usr/lib64/crti.o /usr/pgi/linux86-64/15.1/lib/trace_init.o (中略)usr/lib64/crtn.o

Question  5. PGI コンパイラでテストプログラムをコンパイルした際、Permission denied のメッセージでコンパイルできません

Answer

Assembler message : FATAL : Can't create test.o : Permission denied.

コンパイルを実行しているユーザの書き込み権限が設定されていないディレクトリで、コンパイルを行なっていることが原因です。書き込み権限が設定されているディレクトリでコンパイルを行なって下さい。

Question  6. PGI コンパイラで作成した実行バイナリを実行したら、"EXECUTABLE EXPIRED"と言うメッセージが出て実行できません

Answer
EXECUTABLE EXPIRED - This executable was created using a Trial versionof PGI software. 
The PGI Software and derived executables cease to function
and cannot be used after the conclusion of the Trial testing period.

評価版ライセンスで作成された実行モジュールを用いていることが原因です。評価版ライセンスで作成された実行バイナリ(オブジェクトファイル含む)またはライブラリ(MPICH ライブラリ等)は、使用開始後 2 週間で使用できなくなります。正式ライセンスの環境下で再度、コンパイルを行なってから実行して下さい。

Question  7. PGI コンパイラのバージョンアップの方法を教えてください

Answer

PGI コンパイラのバージョンアップに特有の方法はありません。既存の古いバージョンを残したまま、新たに新バージョンをインストール実装してください。各バージョンのインストールの方法に関しては、弊社のお客様専用ページで詳細に説明しております。また、新バージョン用のライセンス・キーの取得については、こちらのページをご覧ください。また、バグフィックス・ソフトウェアのバージョンアップの方法も記載されております。

Question  8. PGI の旧バージョンと新リリースのバージョンを使い分けたいのですが、方法を教えてください

Answer

【PGI 18.x までの機能です】新規にインストールした PGI コンパイラのバージョンと旧バージョンを切り替えて使いたい場合は、各ユーザのログインシェルで設定するPGI のソフトウェアの存在している場所、すなわち、パス(PATH)の設定をその都度、変更する方法、あるいはコンパイラ・オプション -V{revision_version}を指定する方法のどちらかを選択してご利用下さい。詳細についてはこちらのページをご覧ください。なお、PGI 19.1 以降では、この切替機能ができません。

Question  9. PCクラスタ上に、PGI コンパイラをインストールする際の推奨方法を教えてください

Answer

PGI Workstation / Server ライセンスのどちらの場合でも、PCクラスタ上での PGI ソフトウェアのインストールは、次の方法を推奨します。これは、PGIコンパイラで生成された実行モジュールが各スレーブ・マシンで動作する際、PGI のランタイム・ダイナミック共有ライブラリ(libpcg.so 等)をローディングするため、この共有ライブラリが cluster-wide で共有領域に存在していなければ実行時エラーとなることを回避するためです。なお、PGI Workstation ライセンスの場合は、 PGI ソフトウェアをインストールしたマスタ・ノード上でのみコンパイルが可能です。一方、PGI Server ライセンスでは、スレーブ・ノード上でもコンパイルが可能です。 関連する技術情報(TIPS) はこちらです。

  1. マスタ・ノード並びにスレーブ・ノードが cluster-wide で共有する NFS 領域にシステム管理用のパーティション(例えば、/export) を作成し、マスタノード上から PGI をインストールする。install directory は PGI のデフォルトである /opt/pgi 配下ではなく、その配下の /export/pgi (環境変数 PGI=/export/pgi) とする。但し、PGI Workstation ライセンスの場合は、スレーブノードからコンパイルすることはできません
  2. PCクラスタのマスタ・ノードで、/export/pgi 配下に PGI ソフトウェアをインストールする。これによって、スレーブ・ノードからも $PGI (/export/pgi) のdirectory 配下が readable となり、PGI の実行モジュールがランタイムに必要なダイナミック共有ライブラリ(libpcg.so 等)にアクセス可能となる
  3. 各ユーザのログイン時の初期シェル設定ファイル(.bashrc or .cshrc 等)には、PGI 使用のための環境変数を設定する

Question  10. 現在、PGI 5.1 バージョンを使用していますが、下位のバージョン PGI 4.1-2 も使用したい場合のインストール並びに設定の方法を教えてください

Answer

ここで説明する前提は、現在使用している PGI 5.1 (一例です) のコンパイラ・ソフトウェアをそのまま残し、新たな directory を作成し、下位のバージョンである PGI 4.1-2 (一例です)をその配下にインストールすることを想定しています。注意事項として、PGI ソフトウェアは、バージョン 5.0 以降とそれ以前のバージョン 4 以前では、内部のディレクトリ管理方式が異なります。バージョン 5.0 以降のソフトウェアは、インストールするディレクトリは /usr/pgi (デフォルト) 配下で、各バージョンごとにサブ・ディレクトリを作成して管理可能となっております。従って、インストール時にソフトウェアをインストールする親ディレクトリ(/usr/pgi)を指定するとその配下に自動的に新バージョンのサブ・ディレクトリが作成され、過去のバージョンが上書きされることはありません。一方、PGI バージョン 4 以前のソフトウェアは、バージョンを管理するサブ・ディレクトリを /usr/pgi 配下にもちませんので、上書きされることがあります。この場合は、全く新しいディレクトリ下(例えば、/usr/pgi412)にソフトウェアをインストールした方が安全にご使用になれます。なお、インストールする親ディレクトリは、インストーラが尋ねてきますので、そこでご指定ください (デフォルトは、/usr/pgi です)。

1.PGI バージョン 4.1-2 をダウンロードする
http://www.pgroup.com/support/downloads.php?release=archive

をアクセスしますと過去のバージョンのアーカイブがあります。この中で、ご所望のバージョンの
「Latest Version」欄のバージョン番号をクリックしてください。ログイン画面が現れます。
なお、PGI 社のサイトから初めてソフトウェアをダウンロードする場合は、
「ダウンロード用のアカウント」を作成する必要があります。ログイン画面内の
「Need an account?」をクリックして、ユーザ登録してください(アカウントを作成してください)。
アカウントのパスワードに関しては、登録後、メールにて送付されます。この ID/Passwd で、
ダウンロードが可能となります。

2.PGI 4.1-2 の tar file を現在の PGI が動作しているシステムに移します。これを /tmp/pgi 
    配下におくこととします。これ以降の操作は「ルート権限」で行ってください。
      $ cd /tmp       $ mkdir pgi       $ cd pgi      /tmp/pgi に linux86.tar.gz を ftp でコピーします。     $ tar zxvf linux86.tar.gz  で展開します        展開しますと install ファイルがあります。この install scriptを実行します。        $ ./install   スクリプトの実行途中に、どの directory にインストールするか尋ねられます。デフォルトは、   /usr/pgi となっていますので、これを今回は、別の場所(例 /usr/pgi412)として入力して   下さい。これが、一番大事なポイントです。   その後、インストール手続きを行い、テンポラリライセンスの発行を冗長ですが YES として   下さい。これで、/usr/pgi412 配下に PGI 4.1-2 バージョンが作成されました。 3.FlexNet のライセンスマネージャの設定は、行わなくても結構です。   即ち、現状の PGI 5.1 のインストール時に設定したライセンスマネージャをそのまま使います。   (現システムで、ライセンス・デーモン (lmgrd) が動いているはずです。)    4.現 5.1 上の directoryである /usr/pgi に移動して次のコマンドを実行してください。   (現在の 5.1 用のライセンス・ファイルを /usr/pgi421 配下にコピーします)        $ cd /usr/pgi (現 5.1 コンパイラの場所)       $ cp license.dat /usr/pgi412/license.dat   これは、取得した現在のライセンスファイルをそのまま、/usr/pgi412 配下にコピーすることを行います。 --------ここまでがルート権限で行う作業です-------------------------- 次に、使用するユーザの環境を設定します。ユーザのログインシェル(.bashrc or .cshrc 等)の 内容を書き換えます。PGIコンパイラを利用する場合の環境変数、パスの設定は以下のものが必要です。        export PGI=/usr/pgi  (コンパイラの installation directoryを定義)        export PATH=$PGI/linux86/5.1/bin:$PATH        export MANPATH=$MANPATH:$PGI/linux86/5.1/man        export LM_LICENSE_FILE=$PGI/license.dat  現在、少なくとも上記の設定が ユーザ環境の .bashrc 等に追加されているはずです。 5.コンパイラのバージョンを使い分ける方法 上記の export 文の中の二つを変更して使い分けます。
  ● version 5.x 以上のコンパイラの使用の場合は以下のような設定となります。
       export PGI=/usr/pgi  (v 5.1 コンパイラの場所)        export PATH=$PGI/linux86/5.1/bin:$PATH                        
  ● version 4.x のコンパイラの使用の場合は以下のような設定となります。        export PGI=/usr/pgi412  (v 4.1-2 コンパイラの場所)        export PATH=$PGI/linux86/bin:$PATH
                        (注意)4.x と 5.x の場合のPATHの設定の記述が異なることに注意してください。
    5.x 以上では、$PGI/linux86/5.1/bin の "5.1" が加わっています。 と言う風に書き換えてから、再度ログインしてください。あるいは、source .bashrc を行います。 このようにログインシェルを書き換え、使用するコンパイラ・バージョンの物理的な場所を PATH で設定 することで使い分けが可能です。 4.1-2 の使用が必要でない場合は、必ず、5.1 の設定に戻して コンパイラをご使用下さい。 6.使用しているコンパイラのバージョンを調べる    $ which pgf90       /usr/pgi412/linux86/bin/pgf90 となれば v4.1-2 を見ていることになります     $ pgf90 -V x.f       pgf90 4.1-2    <--- version が出てきます       Copyright 1989-2000, The Portland Group, Inc.  All Rights Reserved.

Question  11. 64ビット Opteron マシンの Linux OS として Fedora Core 3 を使用しましたが、PGI 5.1/5.2 は動作しません。回避方法を教えてください

Answer

PGI 5.1-6 並びに PGI 5.2-4 は正式に Fedora Core 3 をサポートしておりません。2005 年 3 月にリリースされました PGI 6.0 バージョンにおいて正式にサポートしています。 PGI 5.1-6 あるいは PGI 5.2-4 を使用する場合、 Fedora Core 3 上で動作させるための修正パッチ・ファイルをご提供いたしますので、以下のインストラクションに従ってインストールをお願いいたします。
修正パッチファイルは、ここからダウンロードしてください。修正パッチファイル(http ダウンロード) : fedora3_patch.tar.gz 

一度、PGI 5.1/5.2 をインストールされた方は、再度インストール作業を行っていただきます。

1) 先にダウンロードした PGI 5.1-6/5.2-4 バージョンのアーカイブを使用します。このアーカイブを展開し、提供しましたパッチファイルを
  以下の指示に従い、置き換えます。
2) 現在、/usr/pgi 配下に存在する正式ライセンスのバックアップを 別の場所へコピーします。
3) 置き換えた後、 install スクリプトを実行します。
4) 現在、設定済みのライセンス・マネージャ(FlexNet) 等の再設定は必要ありません。

初めて、Fedora Core 3 上で PGI をインストールする場合は、ダウンロードした PGI 5.1-6/5.2-4 バージョンのアーカイブのファイルの一部を以下のように置き換えてからインストールを行い、インストールの手引きを参考に FlexNet ライセンスマネージャの設定を行ってください。

以下の具体的な手続きは、一度 PGI コンパイラをインストールした場合に対する回避方法を述べています。PGI 5.1-6 の場合は、以下の5.2 と言うディレクトリ名を 5.1 に読み替えて実行してください。また、PGI 32ビット専用コンパイラの場合は、以下の linux86-64 のディレクトリ名を linux86 と読み替えてください。(linux86 に係るものだけの処理で構いません)

0) ルート権限に移行する。そして、現在動作している FlexNet ライセンスマネージャ(lmgrd)を停止する。
  以下のコマンドで停止する。

   $ /usr/pgi/linux86-64/5.2/bin/lmgrd.rc stop

  lmgrd が動作しているかどうかは以下のコマンドで確認できる。

  $  ps -efw | grep lmgrd

1) 現在の正式ライセンスを別の場所(例えば、/tmp)へコピーする。

  $ cp /usr/pgi/license.dat /tmp/license.dat

2) 現在、/usr/pgi 配下にインストールした PGI ソフトウェアを一挙に消去する。
  
  $ cd /usr
  $ rm -rf pgi   (他の directory を指定しないよう慎重に消去してください)

3) 弊社からダウンロードしたPGI 5.2-4の linux86-64.tar.gz を /tmp 直下配下に置く。
 (新規インストールの場合は、ここから始めてください)

  $ cd /tmp
  $ mkdir PGI   (インストール用の暫定 directory :後で消去して構わない)
  $ cd PGI
  $ tar xzvf ../linux86-64.tar.gz (展開する)

4) パッチ fedora3_patch.tar.gz ファイルを /tmp 下に移動し、パッチ用の directory を作成する。

  $ cd /tmp
  $ mkdir patch
  $ cd patch
  $ tar xzvf ../fedora3_patch.tar.gz

  展開しますと、現 5.2-4 を置き換えるためのファイル(パッチ)が現れます。

5) パッチファイルを 先ほど展開したインストール用のソースファイル(/tmp/PGI) 配下の一部と
置き換える。

  $ cd /tmp/patch

  以下の二つを置き換えてください。
  $ cp makelocalrc_fedora3 /tmp/pgi/linux86/5.2/bin/makelocalrc

6) この後、PGI の install スクリプトの実行を行っていただきます。

  $ cd /tmp/PGI
  $ ./install  (インストール手続きは以前と同じ方法です、手引書とおり)

  なお、PGIをインストールする場所は、デフォルトの /usr/pgi 配下とします。
  
7) インストール終了後、正規ライセンスを戻す。

  $ mv /tmp/license.dat /usr/pgi/license.dat

8) その他のパッチファイルを正規のインストール場所へコピーする(上書きする)。
  
  $ cp /tmp/patch

  $ cp float.h  /usr/pgi/linux86-64/5.2/include/float.h
  $ cp float.h  /usr/pgi/linux86/5.2/include/float.h

  $ cp limits_64.h /usr/pgi/linux86-64/5.2/include/limits.h
  $ cp limits_32.h /usr/pgi/linux86/5.2/include/limits.h

  $ cp types_sys.h /usr/pgi/linux86-64/5.2/include/sys/types.h 
  $ cp types_sys.h /usr/pgi/linux86/5.2/include/sys/types.h

  $ mkdir /usr/pgi/linux86-64/5.2/include/bits
  $ chnmod 755 /usr/pgi/linux86-64/5.2/include/bits
  $ cp types_bits.h into /usr/pgi/linux86-64/5.2/include/bits/types.h 
  $ cp types_bits.h into /usr/pgi/linux86/5.2/include/bits/types.h 

9) ライセンスマネージャを再起動する(手動再起動)
  新規にインストールする場合は、「インストールの手引き」に従って正規ライセンスの取得と
  ライセンスマネージャ(lmgrd) の設定を行ってください。

  $  /usr/pgi/linux86-64/5.2/bin/lmgrd.rc start

Question  12. Gaussian 用のコンパイラとして PGI が指定されているのですが、そのソフトウェアの入手方法を教えてください

Answer

Gaussian 用のPGIコンパイラに関しては、その説明ページがあります。このバージョンのソフトウェアをダウンロードしたい場合は、こちらのページをご覧ください

Question  13. RedHat Enterprise Linux (AMD64/EM64T)上で 32ビットのコンパイラ環境が構築されていません

Answer

(2011年8月補筆)
Red Hat 6.0 ,CentOS 6.0, Scientific Linux 6.0 上で必要とされる GNU ソフトウェアの実装方法に関しては、#18 の記事をご参照下さい

AMD64/EM64T システム上でデフォルトの64ビットコンパイル環境を使用している際には問題なく動作するのですが、32ビット用の実行モジュールを生成しようとしてクロスコンパイル(コンパイルオプション -tp p7 あるいは -tp -k8-32)を行うと、32ビットのコンパイル環境が存在しないというメッセージで、コンパイルできない場合があります。
これは、Linux システムに gcc の32 ビットのコンパイル環境(gcc-32、g77-32、ライブラリ)が実装されていない状況で、PGI のインストールを行ったことに原因があります。再度、現在のLinux システムに32 ビットのコンパイル環境を追加インストールしてから、PGIコンパイラを再インストールしてください。以下の手順で行います。
● 現在のLinux システムにPGI の32 ビットのコンパイル環境が存在しないことを確認する
 PGI をインストールした場所(デフォルトは /usr/pgi、あるいは/opt/pgi )に移動して、linux86 と言う dirctory が存在しなければ、 32bitのコンパイル環境がインストールされていないと言うことになります。以下の説明では、インストールした場所のデフォルトを /usr/pgi として記述します。PGI 6.x 以降は、デフォルトが /opt/pgi に変更になっております。

$ cd /usr/pgi
$ ls 
INSTALL.txt PGIinstall SUBSCRIPTION_SERVICE index.htm license.dat license.inf
linux86/ linux86-64/

● RedHat Enterprise Linuxで必要な32bit用のパッケージを追加する
ルート権限で、Red Hatアイコンメニュをクリックし、「System Settings」→「Add/Remove Applications(アプリケーションの追加)」を実行します。この中で、「Compatibility Arch Development Support」 と 「Legacy Software Development」 のチェックボックスをオン(左脇ボックスをクリック)にします(以下の図を参照)。なお、「Development Tools」はすでに実装されているはずですので、チェックされているかの確認をしてください。これらのパッケージは、32bitソフトウェア環境の生成に必要となります。



● パッケージを追加して、システムを更新する
Updateをクリックし、選択したパッケージをインストールします。その際、画面に表示される指示に従って、CDの入れ替え等を行い、パッケージをインストールしてください。

● PGI ソフトウェアを再度インストールする
PGI (32bit/64bit 共用)ソフトウェアを再度、インストールしてください。その場合は、 /usr/pgi/license.dat のみを別の場所に退避(バックアップ)して、 /usr/pgi に対しての上書きインストールで構いません。
インストールした後に、 ls /usr/pgi コマンドで、 linux86 ディレクトリが存在することを確認してください。

以下の画面例は、Fedora Core 6、 CentOS 5.0 等の「パッケージマネージャ」でパッケージ管理をする際の例です。「開発」と言う項目では、少なくとも、「レガシーなソフトウェアの開発」、「開発ツール」、「開発ライブラリ」を選択してください。

(補足情報)

Question  14. Gaussian03 Rev. C02用のコンパイラとしてPGI 5.1-6が指定されています。SUSE 10.0等(GCC 4.0以降)の Linux上で、このバージョンをインストールできません。正しくインストールする方法を教えてください

Answer

Gaussian Inc. が指定する Gaussian03 Rev. C02用の正式コンパイラは、PGI 5.1-6 となっております。また、2005年12月にリリースされた Gaussian03 Rev. D01 においては、それをサポートするコンパイラは、PGI 6.0-5 となっております。
PGI 5.1-6 を SUSE 10.0 / Fedora Core 4 / RedHat Enterprise Linux 4 等の最新の Linux Distribution 上でインストールする場合、インストール時に以下のメッセージを出力し、正常にインストールできません。この理由は、PGI 5.1-6 のリリース当時(2003年)において、これらの Linux distributions は発売されていなかったことによるものです。
最新の Linux Distribution 上で、PGI 5.1-6 をインストールするためには、ダウンロードした PGI ソフトウェアの一部のファイルを修正する必要があります。ここでは、その方法について説明いたします。 但し、ご注意いただきたいことは、PGI 5.1-6 は、これらの最新 Linux Distributions を正式サポートしていませんので、この OS 下でのコンパイル・実行時のトラブル等に関しまして、サポートできない場合があることを予めご了承ください

正常にインストールされない場合のメッセージ

(前略)
Installation directory? [/usr/pgi]
Installing software into /usr/pgi (this may take some time).
#############################################

dirname: missing operand
Try `dirname --help' for more information.

対処の方法
この方法は、 PGI 32bit 専用製品(linux86.tar.gz)、PGI 32bit/64bit 共用製品(Linux86-64.tar.gz)共に共通です。

① PGI 5.1-6 ソフトウェアをダウンロードする。ダウンロードは、こちらへ
② ダウンロードしたファイルを /tmp 配下に移動する。( /tmp/linux86.tar.gz あるいは、    /tmp/linux86-64.tar.gz )
③ インストール時に使用する修正ファイル makelocalrc51.gz ファイルを弊社から提供します。
  このファイルを入手し、/tmp 配下にコピーする。弊社の support@softek.co.jp までその旨、
  メールをお送りください。修正ファイルをお送りします。
④ ルート権限で、/tmp ディレクトリ上に、インストールに使用する暫定のディレクトリ PGI を作成する。

$ export LANG=C (念のため端末セッションを英語モードにする)
$ cd /tmp
$ gzip -d makelocalrc51.gz (makelocalrc51 ファイルに解凍)
$ mkdir PGI
$ cd PGI
$ tar zxvf ../linux86-64.tar.gz (PGI 5.1-6 ソフトウェアを展開する)

【32bit用ソフトウェアの一部を修正 (32bit 専用製品、32bit/64bit共用製品共に以下を行うこと)】
$ cd linux86/5.1/bin
$ cp makelocalrc makelocalrc.org
$ cp /tmp/makelocalrc51 makelocalrc

【64bit用ソフトウェアの一部を修正(32bit/64bit共用製品のみ以下を行うこと)】
$ cd /tmp/PGI/linux86-64/5.1/bin
$ cp makelocalrc makelocalrc.org
$ cp /tmp/makelocalrc51 makelocalrc
(修正終了)

【PGI 5.1 インストールの実行】
$ cd /tmp/PGI
$ ./install
(これ以降は一般的なPGIのインストール方法と同じです)
インストール終了後、/usr/pgi/linux86-64配下に 5.1 と言うサブディレクトリが出来たことを確認

以上で PGI 5.1-6 のインストールが終了です。なお、出来る限り、お客様がライセンスを受けている PGI の最新バージョンをインストールして、そのバージョンの正常動作が確認されてから、旧バージョン 5.1 をインストールすることをお勧めします。(もちろん、単独で 5.1 だけをインストールして使用することも問題があるわけではありません)
旧バージョンのコンパイラの使い分け方法に関しては、こちらをご覧ください

Question  15. SUSE 10.0等(GCC 4.0以降)のLinux上で、PGI 5.2-4バージョンをインストールできません。正しくインストールする方法を教えてください

Answer

PGI 5.2-4 を SUSE 10.0 / Fedora Core 4 / RedHat Enterprise Linux 4 等の最新の Linux Distribution 上でインストールする場合、インストール時に以下のメッセージを出力し、正常にインストールできません。この理由は、PGI 5.2-4 のリリース当時(2004年初頭)において、これらの Linux distributions は発売されていなかったことによるものです。
最新の Linux Distribution 上で、PGI 5.2-4 をインストールするためには、ダウンロードした PGI ソフトウェアの一部のファイルを修正する必要があります。ここでは、その方法について説明いたします。但し、ご注意いただきたいことは、PGI 5.2-4 は、これらの最新 Linux Distributions を正式サポートしていませんので、この OS 下でのコンパイル・実行時のトラブル等に関しまして、サポートできない場合があることを予めご了承ください

正常にインストールされない場合のメッセージ

(前略)
Installation directory? [/usr/pgi]
Installing software into /usr/pgi (this may take some time).
#############################################

dirname: missing operand
Try `dirname --help' for more information.

対処の方法
この方法は、 PGI 32bit 専用製品(linux86.tar.gz)、PGI 32bit/64bit 共用製品(Linux86-64.tar.gz)共に共通です。

① PGI 5.2-4 ソフトウェアをダウンロードする。ダウンロードは、こちらへ
② ダウンロードしたファイルを /tmp 配下に移動する。( /tmp/linux86.tar.gz あるいは
  /tmp/linux86-64.tar.gz )
③ インストール時に使用する修正ファイル makelocalrc52.gz ファイルを弊社から提供します。
  このファイルを入手し、/tmp 配下にコピーする。弊社の support@softek.co.jp までその旨、
  メールをお送りください。修正ファイルをお送りします。
④ ルート権限で、/tmp ディレクトリ上に、インストールに使用する暫定のディレクトリ PGI を作成する。

$ export LANG=C (念のため端末セッションを英語モードにする)
$ cd /tmp
$ gzip -d makelocalrc52.gz (makelocalrc52 ファイルに解凍)
$ mkdir PGI
$ cd PGI
$ tar zxvf ../linux86-64.tar.gz (PGI 5.2-4 ソフトウェアを展開する)

【32bit用ソフトウェアの一部を修正 (32bit 専用製品、32bit/64bit共用製品共に以下を行うこと)】
$ cd linux86/5.2/bin
$ cp makelocalrc makelocalrc.org
$ cp /tmp/makelocalrc52 makelocalrc

【64bit用ソフトウェアの一部を修正(32bit/64bit共用製品のみ以下を行うこと)】
$ cd /tmp/PGI/linux86-64/5.2/bin
$ cp makelocalrc makelocalrc.org
$ cp /tmp/makelocalrc52 makelocalrc
(修正終了)

【PGI 5.2 インストールの実行】
$ cd /tmp/PGI
$ ./install
(これ以降は一般的なPGIのインストール方法と同じです)
インストール終了後、/usr/pgi/linux86-64 配下に 5.2 と言うサブディレクトリが出来たことを確認

以上で PGI 5.2-4 のインストールが終了です。なお、出来る限り、お客様がライセンスを受けている PGI の最新バージョンをインストールして、そのバージョンの正常動作が確認されてから、旧バージョン 5.2 を追加インストールすることをお勧めします。(もちろん、単独で 5.2 だけをインストールして使用することも問題があるわけではありません)
旧バージョンのコンパイラの使い分け方法に関しては、こちらをご覧ください

Question  15-1 SUSE 10.2、Fedora Core 6等(glibc 2.5以降)のLinux上で、PGI 6.2 バージョンをインストールできません。正しくインストールする方法を教えてください

Answer

PGI 6.2 を SUSE 10.2/ SUSE Linux Enterprise 10 / Fedora Core 6 / RedHat Enterprise Linux 5 等の Linux Distribution 上でインストールする場合、インストール時に以下のメッセージを出力し、正常にインストールできません。この理由は、PGI 6.2 のリリース当時(2006年9月)において、これらの Linux distributions は発売されていていなかったことによるものです。
上記の glibc 2.5 を有する Linux Distribution 上で、PGI 6.2 をインストールするためには、ダウンロードした PGI ソフトウェアの一部のファイルを修正する必要があります。ここでは、その方法について説明いたします。但し、ご注意いただきたいことは、PGI 6.2 は、これらの最新 Linux Distributions を正式サポートしていませんので、この OS 下でのコンパイル・実行時のトラブル等に関しまして、サポートできない場合があることを予めご了承ください

正常にインストールされない場合のメッセージ

(前略)
Installation directory? [/usr/pgi]
Installing software into /usr/pgi (this may take some time).
#############################################

ERROR: unknown glibc version (2.5).
ERROR: unknown glibc version (2.5).
以下、略

対処の方法
この方法は、 PGI 32bit 専用製品(linux86.tar.gz)、PGI 32bit/64bit 共用製品(Linux86-64.tar.gz)共に共通です。

① PGI 6.2-5 ソフトウェアをダウンロードする。ダウンロードは、こちらへ
② ダウンロードしたファイルを /tmp 配下に移動する。( /tmp/linux86.tar.gz あるいは、
  /tmp/linux86-64.tar.gz )
③ インストール時に使用する修正ファイル makelocalrc62_glibc25 ファイルの内容をコピーして、
  /tmp 配下に置く。このとき、このファイルのパーミッションを chmod 777 makelocalrc62_glibc25
  とする。
④ ルート権限で、/tmp ディレクトリ上に、インストールに使用する暫定のディレクトリ PGI を作成する。

$ export LANG=C (念のため端末セッションを英語モードにする)
$ cd /tmp
$ (/tmp配下に makelocalrc62_glibc25をコピーする)
$ mkdir PGI
$ cd PGI
$ tar zxvf ../linux86-64.tar.gz (PGI 6.2-5 ソフトウェアを展開する)

【32bit用ソフトウェアの一部を修正 (32bit 専用製品、32bit/64bit共用製品共に以下を行うこと)】
$ cd linux86/6.2/bin
$ cp makelocalrc makelocalrc.org
$ cp /tmp/makelocalrc62_glibc25 makelocalrc

【64bit用ソフトウェアの一部を修正(32bit/64bit共用製品のみ以下を行うこと)】
$ cd /tmp/PGI/linux86-64/6.2/bin
$ cp makelocalrc makelocalrc.org
$ cp /tmp/makelocalrc62_glibc25 makelocalrc
(修正終了)

【PGI 6.2 インストールの実行】
$ cd /tmp/PGI
$ ./install
(これ以降は一般的なPGIのインストール方法と同じです)
インストール終了後、/usr/pgi/linux86-64 配下に 6.2 と言うサブディレクトリが出来たことを確認

以上で PGI 6.2 のインストールが終了です。なお、出来る限り、お客様がライセンスを受けている PGI の最新バージョンをインストールして、そのバージョンの正常動作が確認されてから、旧バージョン 6.2 を追加インストールすることをお勧めします。(もちろん、単独で 6.2 だけをインストールして使用することも問題があるわけではありません)
旧バージョンのコンパイラの使い分け方法に関しては、こちらをご覧ください

Question  15-2 SUSE 10.2、Fedora Core 6等(glibc 2.5以降)のLinux上で、PGI 6.1 バージョンをインストールできません。正しくインストールする方法を教えてください

Answer

PGI 6.1 を SUSE 10.2/ SUSE Linux Enterprise 10 / Fedora Core 6 / RedHat Enterprise Linux 5 等の Linux Distribution 上でインストールする場合、インストール時に以下のメッセージを出力し、正常にインストールできません。この理由は、PGI 6.1 のリリース当時(2006年2月)において、これらの Linux distributions は発売されていていなかったことによるものです。
上記の glibc 2.5 を有する Linux Distribution 上で、PGI 6.1 をインストールするためには、ダウンロードした PGI ソフトウェアの一部のファイルを修正する必要があります。ここでは、その方法について説明いたします。但し、ご注意いただきたいことは、PGI 6.1 は、これらの最新 Linux Distributions を正式サポートしていませんので、この OS 下でのコンパイル・実行時のトラブル等に関しまして、サポートできない場合があることを予めご了承ください

(追記:2007/7/3)
以下の修正ファイル makelocalrc61_glibc25 は、SUSE10.1/Fedora Core 5 等の glibc 2.4 をサポートしている Linux システムに対しても対応できるため、 glibc 2.4 をサポートしていない、PGI 6.0, PGI 5.2 バージョンのソフトウェアインストールにおいて、下記と同様な方法で対処できます。ただし、全ての動作を保証することはできませんので予めご了承ください。

正常にインストールされない場合のメッセージ

(前略)
Installation directory? [/usr/pgi]
Installing software into /usr/pgi (this may take some time).
#############################################

ERROR: unknown glibc version (2.5).
ERROR: unknown glibc version (2.5).
以下、略

対処の方法
この方法は、 PGI 32bit 専用製品(linux86.tar.gz)、PGI 32bit/64bit 共用製品(Linux86-64.tar.gz)共に共通です。

① PGI 6.1-6 ソフトウェアをダウンロードする。ダウンロードは、こちらへ
② ダウンロードしたファイルを /tmp 配下に移動する。( /tmp/linux86.tar.gz あるいは、
  /tmp/linux86-64.tar.gz )
③ インストール時に使用する修正ファイル makelocalrc61_glibc25 ファイルの内容をコピーして、
  /tmp 配下に置く。このとき、このファイルのパーミッションを chmod 777 makelocalrc61_glibc25
  とする。
④ ルート権限で、/tmp ディレクトリ上に、インストールに使用する暫定のディレクトリ PGI を作成する。

$ export LANG=C (念のため端末セッションを英語モードにする)
$ cd /tmp
$ (/tmp配下に makelocalrc61_glibc25をコピーする)
$ mkdir PGI
$ cd PGI
$ tar zxvf ../linux86-64.tar.gz (PGI 6.1-6 ソフトウェアを展開する)

【32bit用ソフトウェアの一部を修正 (32bit 専用製品、32bit/64bit共用製品共に以下を行うこと)】
$ cd linux86/6.1/bin
$ cp makelocalrc makelocalrc.org
$ cp /tmp/makelocalrc61_glibc25 makelocalrc

【64bit用ソフトウェアの一部を修正(32bit/64bit共用製品のみ以下を行うこと)】
$ cd /tmp/PGI/linux86-64/6.1/bin
$ cp makelocalrc makelocalrc.org
$ cp /tmp/makelocalrc61_glibc25 makelocalrc
(修正終了)

【PGI 6.1 インストールの実行】
$ cd /tmp/PGI
$ ./install
(これ以降は一般的なPGIのインストール方法と同じです)
インストール終了後、/usr/pgi/linux86-64 配下に 6.1 と言うサブディレクトリが出来たことを確認

以上で PGI 6.1 のインストールが終了です。なお、出来る限り、お客様がライセンスを受けている PGI の最新バージョンをインストールして、そのバージョンの正常動作が確認されてから、旧バージョン 6.1を追加インストールすることをお勧めします。(もちろん、単独で 6.1 だけをインストールして使用することも問題があるわけではありません)
旧バージョンのコンパイラの使い分け方法に関しては、こちらをご覧ください

Question  16 PGI 6.1以降のコンパイラを OpenSUSE10.0/10.1/10.2/10.3/11 上でインストールしたいのですが、この distribution には GNU の Fortran パッケージが含まれていません。これをインストールする方法がありますか

Answer

2007年4月 : アップデート(g77/gfortranに関して補筆)
2009年1月 : OpenSUSE 11.x 対応追加

PGI コンパイラは、 GNU の g77 あるいはgfortran のパッケージの中のライブラリを利用するため、gcc-g77 あるいは、gcc-fortran (gfortran) がシステム上にインストールされている必要があります。2006年1月現在、最新の Linux Distribution は、従来の 32bit 版のパッケージを compat-g77 と称し、Fortran95(gfortran) に対応するものを gcc-fortran パッケージと称するようになりました。 gcc-fortran は 64bit 対応のものと 32bit 対応のものが二つ存在しますが、実装依存により、gcc-fortran のパッケージインストールだけで、32ビット、64ビット対応のものがインストールされる場合もあります。 (64bit Linux の場合は、両方インストールされている必要があります)
GCC 4.0以降を含む、新しい Linux distribution の場合は、gcc-fortran のインストールのみで結構です。各 Linux distribution に含まれる GCC のバージョンは、こちらのページにまとめております

OpenSUSE10.0/10.1/10.2/10.3 の distribution の中には、2007年4月現在においても Fortran 関係のパッケージが含まれておりません。それに対して、商用版の SUSE10.0/10.1(10.2は未確認) には含まれており、インストール時に Fortran パッケージを選択すればメディアからインストールすることが可能です。ここでは、OpenSUSE10.0/10.1/10.2/ 10.3 をご利用なさりたいお客様へに対しての不足している「GNU Fortran パッケージ」の導入方法について説明します。

ディストリビューションされている OpenSUSE10.0/10.1/10.2/10.3 をインストールしてください。このインストール終了後に、GNU Fortran パッケージを追加インストールすると言う形で実現します。以下にその方法を示します。

          【OpenSUSE 10.0の YaST ユーティリティ画面】
(g77に関する補完説明)
正式には、GNU gcc-g77 プロジェクトは、gcc-4.0 以降解散したため、gfortran プロジェクトへ事実上の移行が行われております。したがって、今後の Linux distribution は、gcc 4.0 以降のパッケージで提供する distribution は、g77パッケージが存在しないものがあります。2007年4月現在、SUSE Enterprise Server 10 (gcc 4.1.0)は、g77パッケージのサポートがありません。一方、Fedora Core 6 (gcc 4.1.1) では、32bit 対応の g77 パッケージ(compat-gcc-34-g77-3.4.6-4.i386.rpm) をまだ提供しております。今後は、g77 はフリーズされることとなりますので、PGI コンパイラのインストールの際には、gnu-fortran(gfortran) を予め、Linux システムにインストールしておく必要があります。

1)ルート権限でログインし、デスクトップ上で YaST ユーティリティを開きます。
2)YaSTの機能の中で、「ソフトウェア」と言う大項目があり、そこを選ぶと右にサブメニューが出てきます。
  その中の「インストールのソースを変更する」を選びます。こうすると、別の画面が出てきます。

3)「ソフトウェアソースメディア」と言う画面が出て、この中の「追加」と言うボタンを押し、OpenSUSE
  のソースがある distribution site を指定します。(SUSE 10.3では、「ソフトウェアの管理」と言う名前)
  OpenSUSE 11.0, 11.1以降では、YaSTの「ソフトウェア」-->「ソフトウェアリポジトリ」で、ダウンロードを
  行うリポジトリの設定ができます。これは特に変更する必要がなく、インストール時にデフォルトの設定で
  良いでしょう。

  openSUSE 10.x の場合は、一例として、以下のサイトを利用します。以下のように入力します。

  「HTTP」を選ぶ。
  サーバ名       :ftp.jaist.ac.jp
  サーバ上のディレクトリ:pub/Linux/openSUSE/distribution/SL-10.0-OSS/inst-source/ (10.0の場合)
              pub/Linux/openSUSE/distribution/SL-10.1/inst-source/    (10.1の場合)
  
  「FTP」の場合(10.2の場合)
   ftp://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/10.2/repo/oss/  (10.2の場合)

  OpenSUSE 10.3 
   「HTTP」を選ぶ。
  サーバ名       :download.opensuse.org
  サーバ上のディレクトリ:distribution/10.3/repo/oss/suse
 (http://download.opensuse.org/distribution/10.3/repo/oss/suse)

    (2013年1月補筆)
    SUSEのパッケージリポジトリのURLの説明
      

  設定が終わったら、「OK」を押し、「完了」を押す。上記の定義した「ソース項目」を「上」に移動する。
  これで、上記サイトから足りないモジュールをダウンロードすることが可能となります。



4)次の2)で述べたサブ・メニューの中に「ソフトウェアのインストール/削除」があります。
  これを押します。別画面が出てきますので、ここで左の方の上部に「フィルタ」と言うプルダウンメニュー
  があり、個々の中の「検索」を選びます。検索するワードを入力する部分が出てきますから、
  そこに以下のキーワードを入力してください。

   「fortran」

  そうすると、右の画面に、Fortranに関するモジュール(以下のもの)が表示されますので、表示された
  全部のものにチェックを入れてください。(最低限 gfortran をインストールしてください)

   compat-g77, gcc-fortran, gcc-fortran-32bit, f2c, f2c-32bit

  次に、右下にある「了解」のボタンを押してください。
  この後、これらのモジュールがシステム内にインストールされます。これで使用可能となります。

  openSUSE 11以降では、YaSTの「ソフトウェア」-->「ソフトウェア管理」でパッケージの管理が可能です。
  (下図参照)

以上で、全ての Fortran package がインストールされるはずです。この後、PGIのインストールを行ってください。


OpenSUSE 10.2 の YaST "fortran" パッケージ検索画面
OpenSUSE 11.1 の YaST "ソフトウェアの管理" 画面

(補足情報)

Question  17. PGI ソフトウェアを Fedora/Cent OS/Red Hat Enterprise Linux (64bit) 上でインストールしたいのですが、この distribution では 32bit互換の GNU g77 あるいは gfortran がデフォルトでインストールされません。これをインストールする方法がありますか(PGI のバージョンに限らず、Fedora/Cent OS/ Red Hat Enterprise Linux 上での対処法)

Answer

※ Red Hat や Cent OS の場合の実装方法は、こちらへ

PGI コンパイラは、 GNU の g77 のパッケージの中のライブラリを利用するため、g77 (32bit 並びに 64bit) もしくはgfortran (32bit 並びに 64bit) がシステム上にインストールされている必要があります。2006年1月現在、最新の Linux Distribution は、従来の 32bit 版のパッケージを compat-g77 と称し、Fortran95に対応するものを gcc-fortran(gfortran) パッケージと称するようになりました。 gcc-fortran は 64bit 対応のものと 32bit 対応のものが二つ存在します。
特に、g77 の32bit 用のパッケージは、64bit 対応の Linux 上においてもインストールされている必要があります。これは、64ビット Linux 上で、クロスコンパイル機能を使用して、32bit 互換の実行モジュールを生成する際に必要となります。

ディストリビューションされている Fedora Core 4 (この上位のバージョンも同様です)において、g77 あるいは gfortran 用のパッケージがデフォルトでインストールされていません。 RedHat Enterprise Linux では、後でパッケージをインストールするユーティリティがありますが、 Fedora Core では、これをコマンドベースの yum ユーティリティを使用して行う必要があります(他のGUI ベースの管理ツールもありますが、ここではyumを使用します)。
以下に、g77(32bit/64bit版)をインストールする方法を説明します。但し、使用する 「yum」ユーティリティの設定・使用法に関しては、以下のような別の文献をご利用ください。

【 yum ユーティリティに関するリンク】
 ・http://linux.kororo.jp/cont/intro/yum.php
 ・http://cyberam.dip.jp/linux_foundation/proginstall/yum_main.html
 ・http://www.atmarkit.co.jp/flinux/rensai/linuxtips/672errymfc3.html

なお、ftp/http/https 等の proxy の設定は、明示的に 環境変数で設定した方が良いです。

 export ftp_proxy="ftp://proxy.softek.jp:3128"
 export http_proxy="http://proxy.softek.co.jp:3128"

あるいは、/etc/yum.confの中に PROXYの設定を行ってもよいです。以下の行を加えます。
  PROXY=http://proxy.softek.co.jp:3128/ (一例)

( 2007年 4月 18日 アップデート)
GNU の Fortran 関係の gcc-g77 プロジェクトはすでにフリーズされ、gfortran プロジェクトへ移行しております。PGI Fortranコンパイラにおいて必要な GNU Fortran 系のライブラリは、gcc-g77 パッケージあるいは、gcc-fortran(gfortran) パッケージのどちらかがシステムに実装されていることが必要ですが、g77パッケージがない場合は、 gcc-fortran (gfortran) のパッケージ (32bit 並びに 64bit) をインストールすることで代替できます。詳細につきましては、以下の補足情報の記事をご覧ください。

なお、 Fedora Core 上で yum ユーティリティでインストールする場合は、以下のコマンドで、Fortran を含む GNU GCC 関連パッケージをインストールしてください。(64ビット対応だけでなく、32ビット対応のものもインストールされます)

yum install gcc-gfortran
yum install f2c

その他、以下のように、gcc 関連のものを全てインストールすると安全です。
yum install gcc* compat-gcc* compat-glibc* compat-lib*

(補足情報)

以下は、Fedora Core 4 当時の 32bit 並びに 64bit の g77 関係で必要となるパッケージ(compat-gcc-32-g77、compat-libf2c-32)を yum ユーティリティでインストールする例を示します。2007年以降の場合は、上記の「アップデート記事」を参考にしてください。

[root@amd64 etc]# yum search g77 (g77 関係のパッケージを探す)
Repository updates-released is listed more than once in the configuration
Repository base is listed more than once in the configuration
Searching Packages:
Setting up repositories
base                      100% |=========================| 1.1 kB    00:00
updates-released          100% |=========================|  951 B    00:00
extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files


compat-gcc-32-g77.x86_64                 3.2.3-47.fc4           base
Matched from:
compat-gcc-32-g77
The compat-gcc-32-g77 package provides support for compiling Fortran 77
programs with the GNU Compiler Collection.

[root@amd64 etc]# yum install compat-gcc-32-g77(compat-gcc-32-g77をインストール)
Repository updates-released is listed more than once in the configuration
Repository base is listed more than once in the configuration
Setting up Install Process
Setting up repositories
base                      100% |=========================| 1.1 kB    00:00
updates-released          100% |=========================|  951 B    00:00
extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for compat-gcc-32-g77 to pack into transaction set.
compat-gcc-32-g77-3.2.3-4 100% |=========================| 5.1 kB    00:00
---> Package compat-gcc-32-g77.x86_64 0:3.2.3-47.fc4 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
compat-gcc-32-g77       x86_64     3.2.3-47.fc4     base              2.0 M

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 2.0 M
Is this ok [y/N]: y
Downloading Packages:
(1/1): compat-gcc-32-g77- 100% |=========================| 2.0 MB    00:04
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: compat-gcc-32-g77            ######################### [1/1]

Installed: compat-gcc-32-g77.x86_64 0:3.2.3-47.fc4
Complete!

[root@amd64 etc]# g77(g77 コマンドが使えるか確認する)
g77: no input files

[root@photon26 etc]# yum search libf2c (g77 の互換ライブラリ f2c もインストールするため探す)
Repository updates-released is listed more than once in the configuration
Repository base is listed more than once in the configuration
Searching Packages:
Setting up repositories
base                      100% |=========================| 1.1 kB    00:00
updates-released          100% |=========================|  951 B    00:00
extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files
primary.xml.gz            100% |=========================| 777 kB    00:00
extras    : ################################################## 2191/2191
Added 19 new packages, deleted 390 old in 1.55 seconds


compat-libf2c-32.x86_64                  3.2.3-47.fc4           base
Matched from:
compat-libf2c-32


compat-libf2c-32.i386                    3.2.3-47.fc4           base
Matched from:
compat-libf2c-32


compat-libf2c-32.i386                    3.2.3-47.fc4           installed
Matched from:
compat-libf2c-32

[root@amd64 etc]# yum install compat-libf2c-32 (compat-libf2c-32をインストール)
Repository updates-released is listed more than once in the configuration
Repository base is listed more than once in the configuration
Setting up Install Process
Setting up repositories
base                      100% |=========================| 1.1 kB    00:00
updates-released          100% |=========================|  951 B    00:00
extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package compat-libf2c-32.x86_64 0:3.2.3-47.fc4 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
compat-libf2c-32        x86_64     3.2.3-47.fc4     base               54 k

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 54 k
Is this ok [y/N]: y
Downloading Packages:
(1/1): compat-libf2c-32-3 100% |=========================|  54 kB    00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: compat-libf2c-32             ######################### [1/1]

Installed: compat-libf2c-32.x86_64 0:3.2.3-47.fc4
Complete!

● Red Hat Cent OS、Fedoraの「パッケージマネージャ」を利用してインストールする

 以下の画面は、Fedora、 CentOS、Red Hat Enterprise Linux 等の「パッケージマネージャ」でパッケージ管理をする際の例です。ルート権限でのプルダウンメニューの名前としては、「ソフトウェアの追加と削除」を実行すると以下のような「パッケージマネージャ」が開きます。「ブラウズ」モードで、「開発」を選び、右のサブウインドウに、各カテゴリが表示されます。この中で、以下のものをインストールしておけば、ほとんどの場合、32ビット環境のGCC ソフトウェア( Fortran を含む)と64ビット環境の GCC ソフトウェアが実装できます。

  • レガシーなソフトウェアの開発(この中に含まれる全部を実装する)
  • 開発ツール (デフォルトの実装)
  • 開発ライブラリ (デフォルトの実装)

 2010年12月現在のRed Hat 系の Linux distribution では、32ビットのソフトウェアであるかどうかの判別がファイル名では認識できないような形になっているようです。いずれにしても、上記のカテゴリを実装することで、32bit/64bitのGCCソフトウェアがインストールされるはずです。




Question  18. 64ビット版 Red Hat 6.0 (CentOS 6.0, Scientific Linux 6.0 と Fedora) 以降のシステム上でインストールする際に必要とされる GNU のパッケージ(gcc,gfortran,glibc等)の実装状況の確認方法、あるいはインストールの方法を教えて下さい

Answer

2013年2 月 : 必要なパッケージ名を追記
2011年10月 : libgcc ライブラリについて補足
2011年8 月 : Red Hat 6.0 (CentOS 6.0, Scientific Linux 6.0) 用初稿

PGI コンパイラ製品は、GNU collection に含まれる gcc,gfortran,glibc 等ソフトウェアをコンパイラの基盤ソフトウェアとして使用します。Red Hat 6.x の 64bit版(x86-64) のデフォルトの GNU ソフトウェアは、一般に、64ビット版の GNU ソフトウェア環境のみ実装されており、32ビット(クロス)環境の GNU ソフトウェアは、実装されておりません。従って、GNU gcc コンパイラ等で、32ビット用の実行バイナリを作成するための「クロスコンパイル環境」は使用できません。もちろん、そもそも 64bit Linux 用途の環境なので、32ビット用のクロス開発環境が必要ないと言う場合は、このデフォルトの状態、すなわち 64bit GNU 環境だけ、PGI コンパイラ環境を構築することもできます。この場合は、PGI の 32bit クロスコンパイル用のコンパイラ・ソフトウェアは実装されずに、64bit の PGI コンパイラ環境のみがインストール・実装されます。 PGI のインストーラは、GNUの 32bit用ソフトウェア環境がシステム内に実装されているかどうかを確認し、実装されていたならば PGI の 32bit コンパイラ・ソフトウェアも実装するようにしております。

この記事では、 Red Hat 6.x ( CentOS 6.x, Scientific Linux 6.x ) 上で、GNU の 32bit/64bit のパッケージの実装状況を確認する方法と、不足したパッケージがある場合は、 そのインストール方法を説明します。Red Hat の「システム管理」の中の「ソフトウェアの追加・削除」による「パッケージマネージャ」では、32ビット用の GNU ソフトウェアが見つからない場合がありますので、 以下の方法では、全て rpmコマンドと yum utility を使用して、実装する方法をご紹介します。また、Fedoraの場合も同じ方法で GNU パッケージを実装して下さい。

以下に必要とされるパッケージ名を列挙します。パッケージの名前の中の「バージョン、リビジョン番号」は、各 Distribution のバージョンによって表記が異なりますので、この点、ご注意ください。以下のパッケージが実装されていれば、問題ありません。なお、64ビット Linux システム内に、32ビット用の GNU libgcc/glibc/glibc-devel のパッケージも実装されている場合、PGI の 32ビット用のクロスコンパイル環境もインストールされます。Fedora の場合も同じ形式のパッケージ名となっているはずです。

  • gcc-4.4.4-13.el6.x86_64
  • gcc-c++-4.4.4-13.el6.x86_64
  • gcc-gfortran-4.4.4-13.el6.x86_64
  • libgcc-4.4.4-13.el6.i686 (32bit用)
  • libgcc-4.4.4-13.el6.x86_64
  • glibc-2.12-1.7.el6_0.5.i686 (32bit用)
  • glibc-2.12-1.7.el6_0.5.x86_64
  • glibc-common-2.12-1.7.el6_0.5.x86_64
  • glibc-headers-2.12-1.7.el6_0.5.x86_64
  • glibc-devel-2.12-1.7.el6_0.5.i686 (32bit用)
  • glibc-devel-2.12-1.7.el6_0.5.x86_64

yum utility を使用する場合は、必ず、 PROXY の設定を行って下さい。 yum に関しては、上記の記事(#17)にて説明していますので、これを参考に前準備をしてください。
現在の GNU collectionのインストール済みパッケージの状況を確認します。以下は、root 権限で行います。また、以下の例は、CentOS の場合のパッケージ名となりますので、RedHat の場合は、多少異なるかもしれません。

● glibcパッケージ確認の前に、基本 gcc ライブラリが実装されているかを確認
[root@photon30 ~]# yum search libgcc
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
 * base: centos.mirror.cdnetworks.com
 * centosplus: centos.mirror.cdnetworks.com
 * extras: centos.mirror.cdnetworks.com
 * updates: centos.vr-zone.com
====================== Matched: libgcc ===============================
libgcc.i686 : GCC version 4.4 shared support library    32bit用
libgcc.x86_64 : GCC version 4.4 shared support library  64bit用
上記の二つが存在することを確認、未実装ならば、以下のコマンドでインストール
[root@photon30 ~]# yum install libgcc
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
 * base: centos.mirror.cdnetworks.com
 * centosplus: centos.mirror.cdnetworks.com
 * extras: centos.mirror.cdnetworks.com
 * updates: centos.vr-zone.com
Setting up Install Process
Package libgcc-4.4.4-13.el6.x86_64 already installed and latest version 
Nothing to do(インストール済みのためアクションは無し)
 
● glibc パッケージのインストール状況を見る
[root@photon30]# rpm -qa | grep glibc |sort
glibc-2.12-1.7.el6_0.5.i686
glibc-2.12-1.7.el6_0.5.x86_64
glibc-common-2.12-1.7.el6_0.5.x86_64
glibc-devel-2.12-1.7.el6_0.5.x86_64
glibc-headers-2.12-1.7.el6_0.5.x86_64
 
"i686"の suffix 付きは 32bitのパッケージであることを意味します。
上記で足りないのは、glibc-devel-2.12-1.7.el6_0.5.i686と言う
パッケージです。これが gcc/gfortran で -m32 オプションでコンパイル
したとき リンク時に crt1.o が存在していないと言う問題の原因と
なります。以降作業は、glibc-devel-2.12-1.7.el6_0.5.i686を
インストールすることを目標とします。
 
他に gfortran と gcc についても query しておきます。
以下のようなモジュールがインストールされていれば、問題ないと
思います。以下のモジュールには、"i686"と言う suffix 付きの
ものはありません。現在は、gcc -m32 or -m64 と言うオプションで
32bit or 64bit の実行モジュールを作成するようになっていますので、
gcc/gfortran のコマンド用のモジュールは、gcc-gfortran-4.4.4-13.el6.x86_64
と言ったように x86_64用の一つに統一されています。
 
[root@photon30]# rpm -qa | grep gfortran |sort
gcc-gfortran-4.4.4-13.el6.x86_64
libgfortran-4.4.4-13.el6.x86_64
 
[root@photon30]# rpm -qa | grep gcc |sort
gcc-4.4.4-13.el6.x86_64
gcc-c++-4.4.4-13.el6.x86_64
gcc-gfortran-4.4.4-13.el6.x86_64
libgcc-4.4.4-13.el6.i686        これも必要です。
libgcc-4.4.4-13.el6.x86_64
 
さて、ここからが yum で実装するステップです。
yum の実行時には、必ず、端末セッションにproxy の設定を行って下さい。
 
(例)
# export ftp_proxy=ftp://proxy.softek.jp:3128
# export http_proxy=http://proxy.softek.co.jp:3128
 
glibc-develと言うパッケージを探します。
 
[root@photon30]# yum search glibc-devel
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
 * base: centos.mirror.cdnetworks.com
 * centosplus: centos.mirror.cdnetworks.com
 * extras: centos.mirror.cdnetworks.com
 * updates: centos.mirror.cdnetworks.com
============================= Matched: glibc-devel ===========================
glibc-devel.i686 : Object files for development using standard C libraries.
glibc-devel.x86_64 : Object files for development using standard C libraries.
 
すると、glibc-devel.i686 と glibc-devel.x86_64 の二つが存在することが
分かります。それでは、glibc-devel.i686をインストールします。
 
[root@photon30 ~]# yum install glibc-devel.i686
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
 * base: centos.mirror.cdnetworks.com
 * centosplus: centos.mirror.cdnetworks.com
 * extras: centos.mirror.cdnetworks.com
 * updates: centos.mirror.cdnetworks.com
base                                    | 3.7 kB     00:00
centosplus                              | 3.5 kB     00:00
contrib                                 |  951 B     00:00
extras                                  |  951 B     00:00
updates                                 | 3.5 kB     00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package glibc-devel.i686 0:2.12-1.7.el6_0.5 set to be updated
--> Finished Dependency Resolution
 
Dependencies Resolved
 
==============================================================================
 Package             Arch       Version              Repository      Size
==============================================================================
Installing:
 glibc-devel         i686        2.12-1.7.el6_0.5    updates         961 k
 
Transaction Summary
==============================================================================
Install       1 Package(s)
Upgrade       0 Package(s)
 
Total download size: 961 k
Installed size: 953 k
Is this ok [y/N]: y
Downloading Packages:
glibc-devel-2.12-1.7.el6_0.5.i686.rpm                   | 961 kB     00:25
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing     : glibc-devel-2.12-1.7.el6_0.5.i686         1/1
 
Installed:
  glibc-devel.i686 0:2.12-1.7.el6_0.5
 
Complete!
 
以上で、実装が完了しました。rpm で確認します。
 
[root@photon30 ~]# rpm -qa | grep glibc |sort
glibc-2.12-1.7.el6_0.5.i686
glibc-2.12-1.7.el6_0.5.x86_64
glibc-common-2.12-1.7.el6_0.5.x86_64
glibc-devel-2.12-1.7.el6_0.5.i686    <===== 追加された32bit用ライブラリ
glibc-devel-2.12-1.7.el6_0.5.x86_64
glibc-headers-2.12-1.7.el6_0.5.x86_64
 
これで、32ビットと64ビットの GNU のライブラリ環境が完備されました。
それでは、テストプログラムを -m32 オプションでコンパイルします。
 
[root@photon30 tmp]# gfortran -m32 hello-f.f (参照)
 
正常にコンパイルできました。
それでは、gcc でもテストします。以下のように問題なく、コンパイルできています。
 
[root@photon30 tmp]# gcc -m32 hello.c
[root@photon30 tmp]# ldd a.out
        linux-gate.so.1 =>  (0x00aca000)
        libc.so.6 => /lib/libc.so.6 (0x008c5000)
        /lib/ld-linux.so.2 (0x008a3000)
 
a.out は32ビットの ELF 32-bit LSB executableとなっています。
 
[root@photon30 tmp]# file a.out
a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), 
      dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
 
 
以上で、GNU/GCC/gfortranの 32bit and 64bit コンパイル環境がシステム内に完備されました。

Question  19. Ubuntu システム上で PGI をインストールする際に必要とされる GNU のパッケージ(gcc,gfortran,glibc等)インストールの方法を教えて下さい

Answer

2012年2月 初稿

PGI コンパイラ製品は、GNU collection に含まれる gcc,gfortran,glibc 等ソフトウェアをコンパイラの基盤ソフトウェアとして使用します。Ubuntu の 64bit版(x86-64) のデフォルトの GNU ソフトウェアは、一般に、64ビット版の gcc ソフトウェア環境のみ実装されており、gfortran パッケージや 32ビット(クロス)の gcc ソフトウェア環境は、実装されておりません。従って、Ubuntu デフォルト実装の状態では、GNU gcc コンパイラ等で、32ビット用の実行バイナリを作成するための「クロスコンパイル環境」は使用できません。もちろん、そもそも 64bit Linux 用途の環境なので、32ビット用のクロス開発環境が必要ないと言う場合は、このデフォルトの状態、すなわち 64bit GNU 環境だけ、PGI コンパイラ環境を構築することもできますが、gfortran 環境はインストールする必要があります。この場合は、PGI の 32bit クロスコンパイル用のコンパイラ・ソフトウェアは実装されずに、64bit の PGI コンパイラ環境のみがインストール・実装されます。 PGI のインストーラは、GNUの 32bit用ソフトウェア環境がシステム内に実装されているかどうかを確認し、実装されていたならば PGI の 32bit コンパイラ・ソフトウェアも実装するようにしております。

この記事では、 Ubuntu (desktop or Server)上で、必要とする GNU の 32bit/64bit のパッケージをインストール方法を説明します。一般に、gcc コンパイラのパッケージはデフォルトでインストールされていますので、これは省略します。Ubuntuのパッケージ管理は、apt-get コマンドを使用しますので、これを利用して実装する方法をご紹介します。apt-get や apt-cache コマンドの使用法に関しては、以下の URL をご参考にして下さい。

ここでの Ubuntu の状態は、システム上の proxy の設定が行われており、外部 Internet と通信できることを前提としてます。 必要とされる GNU のパッケージは以下の通りです。また、GNU系パッケージとは異なりますが、lsb パッケージも導入して下さい

  • gcc-multilib(これは実装されているかもしれない)
  • g++-multilib
  • gfortran
  • gfortran-multilib
  • ia32-libs(32bit用ライブラリ群)
  • lsb-core(Linux Standard Base パッケージ)
● 最新のパッケージリストを取得する(これを忘れないで実行して下さい)
[@photon26 ~]# sudo apt-get update
(省略)
1,568 kB を 24秒 で取得しました (64.5 kB/s)
パッケージリストを読み込んでいます... 完了

● 各パッケージを実装する

[@photon26 ~]# sudo apt-get install gcc-multilib
[@photon26 ~]# sudo apt-get install g++-multilib
[@photon26 ~]# sudo apt-get install ia32-libs (新しい Ubuntu バージョンでは本パッケージがない場合がある)
[@photon26 ~]# sudo apt-get install gfortran
[@photon26 ~]# sudo apt-get install gfortran-multilib
GNUパッケージではないですが、以下の lsb パッケージも実装してください
[@photon26 ~]# sudo apt-get install lsb-core

以上で、GNU gcc/g++/gfortran の実装が完了しました。
また、32ビットと64ビットの GNU のライブラリ環境が完備されました。

それでは、32ビットのクロス環境が実装されているかどうかを確認するため、
テストプログラムを -m32 オプションでコンパイルします。
 
[@photon30 tmp]# gfortran -m32 hello-f.f  (参照)
正常にコンパイルできました。

[@photon30 tmp]# ldd a.out
        linux-gate.so.1 =>  (0xf77ba000)
        libgfortran.so.3 => /usr/lib32/libgfortran.so.3 (0xf769b000)
        libc.so.6 => /lib32/libc.so.6 (0xf7521000)
        libquadmath.so.0 => /usr/lib/../lib32/libquadmath.so.0 (0xf74ac000)
        libm.so.6 => /lib32/libm.so.6 (0xf7482000)
        /lib/ld-linux.so.2 (0xf77bb000)

それでは、gcc でもテストします。以下のように問題なく、コンパイルできています。
 
[@photon30 tmp]# gcc -m32 hello.c
[@photon30 tmp]# ldd a.out
        linux-gate.so.1 =>  (0xf77ac000)
        libc.so.6 => /lib32/libc.so.6 (0xf7615000)
        /lib/ld-linux.so.2 (0xf77ad000)
 
なお、a.out は32ビットの ELF 32-bit LSB executableとなっています。
 
[root@photon30 tmp]# file a.out
a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked 
(uses shared libs), for GNU/Linux 2.6.15, not stripped
 
 
以上で、GNU/GCC/gfortranの 32bit and 64bit コンパイル環境がシステム内に完備されました。
この確認後、PGIコンパイラをインストールして下さい。

Question  20. Ubuntu 11.10 システム上で PGI 12.1 をインストールした環境で、リンク時に以下のような不具合が出ます。この対処法を教えて下さい。
/usr/bin/ld: cannot find /usr/lib64/crt1.o: No such file or directory

Answer

2012年2月 初稿

Ubuntu 11.10 上における PGI 12.1 の不具合です。この問題を回避する方法を説明します。なお、この問題は、PGI 12.2 で解決しております。
ルート権限(sudo) で、PGIコンパイラの初期設定ファイル(localrc)を修正して下さい。以下のパス名の中の $PGI は、デフォルトインストールにおいては /opt/pgi となります。

  • $PGI/linux86-64/12.1/bin/localrc (64bit環境)
  • $PGI/linux86/12.1/bin/localrc (32bit環境)
● $PGI/linux86-64/12.1/bin/localrc (linux86-64:64bit環境)の内容
set LFC=-lgfortran;
set LDSO=/lib64/ld-linux-x86-64.so.2;
set GCCDIR=/usr/lib/gcc/x86_64-linux-gnu/4.6.1;
set GPPDIR= /usr/include/c++/4.6 /usr/include/c++/4.6/x86_64-linux-gnu/. /usr/include/c++/4.6/backward;
set GCCINC=/usr/lib/gcc/x86_64-linux-gnu/4.6.1/include;
set G77DIR=/usr/lib/gcc/x86_64-linux-gnu/4.6.1/;
set DEFLIBDIR=/usr/lib/x86_64-linux-gnu;         <===== この行を追加して下さい
set DEFSTDOBJDIR=/usr/lib/x86_64-linux-gnu;      <===== この行を追加して下さい
set OEM_INFO=64-bit target on x86-64 Linux $INFOTPVAL;
set LOCALRC=YES;
set THROW=__THROW=;
set EXTENSION=__extension__=;
set LC=$if(-Bstatic,-lgcc -lgcc_eh -lc -lgcc -lgcc_eh -lc, -lgcc -lc -lgcc);
# GLIBC version 2.13
# GCC version 4.6.1
set GCCVERSION=40601;
set LOCALDEFS=__STDC_HOSTED__;
export PGI=$COMPBASE;
# makelocalrc executed by root Thu Feb 16 13:54:3

● $PGI/linux86/12.1/bin/localrc (linux86:32bit環境)の内容
set LFC=-lgfortran;
set LDSO=/lib/ld-linux.so.2;
set GCCDIR=/usr/lib/gcc/x86_64-linux-gnu/4.6.1/32;
set GPPDIR= /usr/include/c++/4.6 /usr/include/c++/4.6/x86_64-linux-gnu/32 /usr/include/c++/4.6/backward;
set GCCINC=/usr/lib/gcc/x86_64-linux-gnu/4.6.1/include;
set G77DIR=/usr/lib/gcc/x86_64-linux-gnu/4.6.1//32;
set OEM_INFO=32-bit target on x86-64 Linux $INFOTPVAL;
set LOCALRC=YES;
set THROW=__THROW=;
set EXTENSION=__extension__=;
set LC=$if(-Bstatic,-lgcc -lgcc_eh -lc -lgcc -lgcc_eh -lc, -lgcc -lc -lgcc);
set DEFLIBDIR=/usr/lib;        <===== この内容に修正して下さい
set DEFSTDOBJDIR=/usr/lib;     <===== この内容に修正して下さい
set EXTRAASARGS=--32;
# GLIBC version 2.13
# GCC version 4.6.1
set GCCVERSION=40601;
set LOCALDEFS=__STDC_HOSTED__;
export PGI=$COMPBASE;
# makelocalrc executed by root Thu Feb 16 13:57:56

Question  21. OS X 10.7(Lion)の Xcode 4.3.1 (2012年3月リリース)以降を導入した際に、PGIコンパイラをインストールする際の注意点を教えてください。

Answer

2014年1月 追記
2012年3月 初稿

 以下の説明は、Xcode 4.x 時代における注意点です。なお、2013年後半から Xcode 5.0 がリリースされました。この 5.0 に関しては、過去の Xcode バージョンが同じシステムに実装されていたとしても、過去の Xcode 名を Xcode2 と言う形にリネームして Xcode 5.0 をインストールするようです。ソフトウェアの実装する場所でのコンフリクトはありません。
 まず、Xcode 4.3.1以降(Xcode 5の前のバージョンまでの話です)を導入する際は、旧バージョン Xcode 4.2 等もシステム内に残しておいた方が良いと言うことを始めに述べておきます。ここでは、4.3.1 の実装を仮定して説明します
 Xcode 4.3.1 以降のソフトウェアの実装場所(/Appliocation配下)は、従来の 4.2 以前の実装場所(/Developer配下)とは異なっております。Xcode は、PGIコンパイラのソフトウェアが使用するシステム開発環境(SDK)を含んでいるため、PGIの初期設定ファイル(/opt/pgi/osx86-*/12.x/bin/localrc) の中にこれらの PATH が適切に設定されていなければなりません。この設定は、PGIのインストーラが行いますが、システム内の Xcode 4.3.1 の 実装が適切になされていない場合は、当該インストール自体が不調に終わるか、あるいは、Xcode 4.2 以下の旧バージョンが残っている場合には、古い Xcode 4.2 等を使用するような設定になってしまいます。ここでは、Xcode 4.3.1 が適切に実装されているかどうかの確認方法を説明します。まず、PGI コンパイラがインストーラで実装された後のPGIの初期設定ファイルの実装場所を以下に記します。この中身を見ると、PGIコンパイラで使用される Xcode 環境 (GCCDIR) の実装パスが分かります。以下の例は、PGI 12.3 の場合の実装形として説明しています。GCCDIRのパス名が /Applications/Xcode.app/Contents/Developer から開始されていれば、PGIコンパイラは、Xcode 4.3.1を正常に認識しております。

  • /opt/pgi/osx86-64/12.3/bin/localrc (64bit環境)
  • /opt/pgi/osx86/12.3/bin/localrc (32bit環境)
● Xcode 4.3.1 を使用した際の $PGI/osx86-64/12.3/bin/localrc (osx86-64:64bit環境)の localrc の内容一例
set GCCVERSION=40201;
set GCCDIR=/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1;
set GCCINC=/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/include;
set OEM_INFO=64-bit target on Apple OS/X $INFOTPVAL;
set LOCALRC=YES;
set LC=$if(-Bstatic,-lgcc -lgcc_eh -lc -lgcc -lgcc_eh -lc, -lgcc -lc -lgcc) -lSystem;
export PGI="/opt/pgi";
# makelocalrc executed by root Mon Mar 19 13:47:20
● Xcode 4.2 を使用した際の $PGI/osx86-64/12.3/bin/localrc (osx86-64:64bit環境)の localrc の内容一例
set GCCVERSION=40201;
set GCCDIR=/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1;
set GCCINC=/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin11/4.2.1/include;
set OEM_INFO=64-bit target on Apple OS/X $INFOTPVAL;
set LOCALRC=YES;
set LC=$if(-Bstatic,-lgcc -lgcc_eh -lc -lgcc -lgcc_eh -lc, -lgcc -lc -lgcc) -lSystem;
export PGI="/opt/pgi";

 OS X のシステム内で Xcode 4.3.1 にアップグレードした後に、4.3.1 並びに必要とされるコンポーネントが実装されているかどうかの確認方法を以下に説明します。PGIコンパイラがXcode 4.3.1 がうまく認識していない場合(インストールが不調の場合)は、再度、以下の点をご確認下さい。

  • アップルメニューから、この”Macについて”を選択します。
  • 現れたウインドウ上の“詳しい情報”を選択します。
  • ウインドウ左側の選択肢で「ソフトウェア」-「アプリケーション」を選択して、右側に現れた中からXcodeを探します。これにバージョン番号が記されています。複数 Xcode バージョンが実装されている場合は、複数の Xcode が表示されます。この中に 4.3.1 が存在しているかを確認してください。ここに存在しなければ、まだ実装されていません。
  • 次に、Xcode 4.3.1 を起動します。Finder を開き、この中の「アプリケーション」を選択し、そのリストを表示します。この中に Xcode.app がありますので、これをダブルクリックすると、Xcode 4.3.1 が開きます。Xcode を開いた時にバージョン名が 4.3.1 であることを確認してください
  • 次に、Xcode の上位にあるメニューの中で、"Xcode" をクリックしプルダウンされた中の「Preference」を選ぶと、ポップアップ画面が出ます。この中の「Download」をクリックすると、インストール可能なモジュールが表示されます。この中の「Command Line Tools( ..MB)」を選び、インストールして下さい。このモジュールがなければ、PGIのインストーラは、Xcode 4.3.1 の存在を確認することができず、PGIは、Xcode 4.3.1 を使用しない設定となります。確認事項は以上で終了です。

 さらに、/usr/bin/xcodebuild が 4.3.1 になっているかを確認します。root 権限で以下のコマンドを実行して下さい。

  • % xcode-select -switch /Applications/Xcode.app/Contents/Developer
  • % /usr/bin/xcodebuild -version
    Xcode 4.3.1
    Build version 4E1019
    4.3.1 と表示されていることを確認する

 以上を確認した後、PGIの初期設定ファイル localrc を更新します(このコマンド操作だけで済みます。ソフトウェアの再インストールは必要ありません)。root 権限で、以下の方法で行って下さい。以下は、PGI 12.3 の場合の説明です。また、PGI 12.3 より以前のリビジョンもシステム内に残している場合は、各リビジョンの bin 配下まで移動してから makelocalrc スクリプトを実行すると、localrc 初期設定ファイル内の変数値は新しい Xcode の環境に変更されます。

% cd /opt/pgi/osx86-64/12.3/bin
% ./makelocalrc -x /opt/pgi/osx86-64/12.3
(32bit環境)
% cd /opt/pgi/osx86/12.3/bin
% ./makelocalrc -x /opt/pgi/osx86/12.3 

Question  22. macOS (OS X) 上でXcode 開発環境が実装されているかどうかの確認方法を教えてください

Answer

Apple 社推奨 macOS (OS X) バージョンと対応する Xcode バージョンの組み合わせは、こちらへ

(2019年 2月)  PGI ソフトウェアをインストール前に、必ず Xcode 本体 と「Command Line Tools」モジュールをインストールして下さい。以下をご参照ください。さらに、Xcode の「license agreement」に対して、Agree していることが必要です。なお、著者の経験によると、旧バージョンの Xcode を実装している環境に 新しいバージョンの Xcode をインストールすると、旧バージョンが削除され、新バージョンのみの実装となります。

==== XCODE 実装後の注意事項 =====

Xcodeを最新バージョンに更新した際は、必ず、Xcodeのアプリケーションの「license agreement」に対して、Agree することが必要です。これを怠ると、PGIコンパイラの初回の使用時に以下のようなメッセージを出して、コンパイルすることができません。

 macbook:PGI$ pgf90 test.f90
 Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

「license agreement」に Agree する方法は、Mac上で Xcode アプリケーション本体を起動して、最初に現れる「license agreement」の画面で Agree を行うか、あるいは、root 権限で、sudo xcodebuild -license コマンドで agree を行うか、どちらかの方法で実施して下さい。これによって、PGIコンパイラは使用出来るようになります。

==== Xcode 開発環境の確認方法 ====
2014年1月 追記
2013年1月 初稿

 macOS 上では、PGIソフトウェアのインストール前に Xcode 開発環境が実装されているかどうかの確認を行ってください。macOS の各バージョンに合う適切な Xcode がシステムに存在していない場合、PGIソフトウェアのインストールができません。なお、Xcodeソフトウェアは Apple Store を経由してインストールする形態となっておりますので各自でインストールをお願いいたします。macOS 10.8 以前Xcode 4.3.x ~ 5 の確認・導入方法は、こちらをご覧ください

 macOS 10.9 (Maverick) 上の Xcode 5.0 以降の確認方法を以下に説明します。macOS 10.10 以降も同様です。以下の二つの作業を実施してください。

  1. Xcode の本体ソフトウェアをインストールする
  2. Xcode の「Command Line Tools」モジュールを明示的にインストールする

 1. の作業である、Xcode の本体ソフトウェアは、Mac 上で、Apple 社の Apple Store サイトからインストールしてください。インストール後の Xcode の確認は以下のように行ってください。

  • アップルメニューから、この”Macについて”を選択します。
  • 現れたウインドウ上の“詳しい情報”を選択し、さらに、”システムレポート”のボタンを押します。
  • ウインドウ左側の選択肢で「ソフトウェア」-「Developer」を選択すると、右側の欄に Xcode の情報が表示されます。これにバージョン番号が記されています。ここに Xcode に関する情報が表示されていない場合は、Xcode が実装されていないことになりますので、再度、Apple Store を通じてダウンロードしインストールしてください。複数 Xcode バージョンが実装されている場合は、複数の Xcode が表示されます。使用する Xcode バージョンの選択は、コマンド(xcode-select -switch) にて変更可能です。なお、以下の図の中の「Xcode 情報」に、「場所」として、この Xcode バージョンが実装されているパス名(/Applications/Xcode.app) が記述されています。

    XCODE

 2. の作業である、Xcodeの「Command Line Tools」モジュールは、以下の方法で実装してください。

  • Xcode を起動します。Finder を開き、この中の「アプリケーション」を選択し、そのリストを表示します。この中に Xcode がありますので、これをダブルクリックすると、Xcode が開きます。Xcode を開いた時にバージョン名を確認してください。

    XCODE

  • 次に、Xcode の上位にあるメニューの中で、"Xcode" をクリックしプルダウンされた中の「Open Developer Tool」-「More Developer Tools...」を選ぶと、web ブラウザが開き、Xcodeのソフトウェアサイトが表示されます(Apple ID/passwd の入力が求められます)。

    XCODE

    以下の画像は、Xcodeのソフトウェアサイトです。導入した Xcode 並びに macOS のバージョンに適合する最新の「Command Line Tools(macOS名)」を選び、そのファイルをダウンロードして下さい。ダウンロード後、当該ファイルをダブルクリックすることによりcommand tools がインストールされます。このモジュールがなければ、PGIのインストーラは、Xcode の存在を確認することができず、「インストール出来ないと言うメッセージ」で終了します。

    XCODE

Xcode を起動し Command Line Tools のバージョンの確認方法

 Xcodeを起動して、Xcode の上位にあるメニューの中で、"Xcode" をクリックしプルダウンされた中の「Preferences...」をクリックします。以下の画面が現れますので、その中の「Locations タブ」を選ぶと実装されている Command Line Tools の対応バージョンが表示されます。

XCODEーCommandLine

複数の Xcode のバージョンが実装されている場合の確認方法

 過去の OS X バージョンでは、システムの中に Xcode の旧バージョンが複数存在している場合、システムのデフォルトで使用する Xcode の実装場所とバージョンを確認してください。xcode-select --print-path コマンドで、デフォルトで使用されている実装場所と /usr/bin/xcodebuild -versionコマンドで、デフォルトで使用されている Xcode バージョンを確認できます。

  • % xcode-select --print-path
    /Applications/Xcode.app/Contents/Developer
  • % /usr/bin/xcodebuild -version
    Xcode 5.0.2
    Build version 5A3005
    5.0.2 バージョンであることを示しています。

 もし、何らかの理由でデフォルトで使用する Xcode バージョンを変更したい場合は、以下のコマンドを利用して明示的に変更します。

  • % xcode-select -switch /Applications/Xcode2.app/Contents/Developer

-------------------------------------------------------------------------------------------------------

 OS X 10.8 以前Xcode 4.3.x ~ 5 の確認方法を以下に説明します。 Xcode 本体のソフトウェアと Command Line tools ソフトウェアの二つが実装されていなければ、コンパイラは使用できません

  • アップルメニューから、この”Macについて”を選択します。
  • 現れたウインドウ上の“詳しい情報”を選択し、さらに、”システムレポート”のボタンを押します。
  • ウインドウ左側の選択肢で「ソフトウェア」-「Developer」を選択すると、右側の欄に Xcode の情報が表示されます。これにバージョン番号が記されています。ここに Xcode に関する情報が表示されていない場合は、Xcode が実装されていないことになりますので、Apple Storeを通じてダウンロードしインストールしてください。複数 Xcode バージョンが実装されている場合は、複数の Xcode が表示されます。

    XCODE

  • 次に、Xcode を起動します。Finder を開き、この中の「アプリケーション」を選択し、そのリストを表示します。この中に Xcode がありますので、これをダブルクリックすると、Xcode が開きます。Xcode を開いた時にバージョン名を確認してください。

    XCODE

  • 次に、Xcode の上位にあるメニューの中で、"Xcode" をクリックしプルダウンされた中の「Preference」を選ぶと、ポップアップ画面が出ます。この中の「Download」をクリックすると、インストール可能なモジュールが表示されます。この中の「Command Line Tools( ..MB)」を選び、インストールして下さい。このモジュールがなければ、PGIのインストーラは、Xcode の存在を確認することができず、インストール出来ないと言うメッセージで終了します。

    XCODE

 もし、システムの中に Xcode の旧バージョンが複数存在している場合は、システムのデフォルトで使用する Xcode バージョンを予め設定しておく必要があります。特に、Xcode 4.3 バージョン以降のものが存在する場合は、過去のバージョンとは異なる実装場所となるため、xcode-select コマンドで明示的に 4.3 バージョン以降の新しいバージョンの実装場所を指定することが必要です。Xcode 4.3 以降の場合は、明示的に以下の xcode-select コマンドを実行してください(1回行えば、システム内に保持される)。その次に、/usr/bin/xcodebuild -versionコマンドで、デフォルトで使用されている Xcode バージョンを確認してください。

  • % xcode-select -switch /Applications/Xcode.app/Contents/Developer
  • % /usr/bin/xcodebuild -version
    Xcode 4.5.2
    Build version 4G2008a
    4.5.2 バージョンであることを示しています。

Question  23. SUSE、OpenSUSEのシステム上でインストールする際に必要とされる GNU のパッケージ(gcc,gfortran,glibc等)の実装状況の確認方法、あるいはインストールの方法を教えて下さい

Answer

2013年1月 初稿

64bit版SUSE上では、64ビットネイティブなコンパイル環境だけでなく、32ビット用の実行バイナリを作成することができる32ビット用のクロスコンパイル環境も作成できます。この場合は、システム内に 32bit 用の GNU 開発環境の実装も必要です。以下の説明では、GNUの 32bit 環境も実装されるものとして説明しております。
zypper を使用する場合は、予め、SUSE のリポジトリの設定を行っておいてください(SUSEのリポジトリ)。これは YaST を使用するためにすでに設定されていると思います。以下に示すパッケージが実装されているかどうかを確認してください。実装されていない場合は、インストールしてください。実行にはルート権限が必要です。

  • gcc(gcc/gfortran/g++)
  • gcc-32bit(gcc/gfortran/g++)
  • glibc)
  • glibc-32bit(gcc/gfortran/g++)
  • glibc-devel(これは必ず実装してください)
  • glibc-devel-32bit
  • libgcc
  • libgcc-32bit

zypper コマンドは少なくとも以下の二つを覚えれば良いです。

● パッケージの検索(実装されているか確認)
$ zypper search キーワード
$ zypper search --detail キーワード (詳細なリスト)
  キーワードが名前の一部に含まれているパッケージを検索
  
● パッケージのインストール
$ zypper install キーワード
  キーワードが名前の一部に含まれているパッケージを検索   
● zypper でリポジトリの設定状況を確認
                      
photon0:~ # zypper repos
# | 別名                              | 名前                              | 有効       | 更新
--+-----------------------------------+-----------------------------------+------------+-----------
1 | openSUSE-12.1-12.1-1.4            | openSUSE-12.1-12.1-1.4            | はい (Y)   | いいえ (N)
2 | openSUSE-12.1-12.1-1.4-向けの更新 | openSUSE 12.1 12.1-1.4 向けの更新 | はい (Y)   | はい (Y)
3 | repo-debug                        | openSUSE-12.1-Debug               | いいえ (N) | はい (Y)
4 | repo-debug-update                 | openSUSE-12.1-Update-Debug        | いいえ (N) | はい (Y)
5 | repo-non-oss                      | openSUSE-12.1-Non-Oss             | はい (Y)   | はい (Y)
6 | repo-oss                          | openSUSE-12.1-Oss                 | はい (Y)   | はい (Y)
7 | repo-source                       | openSUSE-12.1-Source              | いいえ (N) | はい (Y)

● gcc関連のパッケージ内容確認( "i" マークは実装済みの意味)

photon0:~ # zypper search  gcc
リポジトリのデータを読み込んでいます...
インストール済みのパッケージを読み込んでいます...

S | 名前                              | 概要                                                 | 種類
--+-----------------------------------+------------------------------------------------------+-----------
  | cross-hppa-gcc-icecream-backend   | GNU C コンパイラとサポートファイル                   | パッケージ
  | cross-i386-gcc-icecream-backend   | GNU C コンパイラとサポートファイル                   | パッケージ
  | cross-ia64-gcc-icecream-backend   | GNU C コンパイラとサポートファイル                   | パッケージ
  | cross-ppc-gcc-icecream-backend    | GNU C コンパイラとサポートファイル                   | パッケージ
  | cross-ppc64-gcc-icecream-backend  | GNU C コンパイラとサポートファイル                   | パッケージ
  | cross-s390-gcc-icecream-backend   | GNU C コンパイラとサポートファイル                   | パッケージ
  | cross-s390x-gcc-icecream-backend  | GNU C コンパイラとサポートファイル                   | パッケージ
  | cross-x86_64-gcc-icecream-backend | GNU C コンパイラとサポートファイル                   | パッケージ
i | gcc                               | システム GNU C コンパイラ                            | パッケージ
i | gcc-32bit                         | システム GNU C コンパイラ                            | パッケージ
  | gcc-ada                           | システム GNU Ada コンパイラ                          | パッケージ
i | gcc-c++                           | システム GNU C++ コンパイラ                          | パッケージ
i | gcc-c++-32bit                     | システム GNU C++ コンパイラ                          | パッケージ
i | gcc-fortran                       | システム GNU Fortran コンパイラ                      | パッケージ
i | gcc-fortran-32bit                 | システム GNU Fortran コンパイラ                      | パッケージ
  | gcc-gij                           | システム GNU Java バイトコードインタプリタ           | パッケージ
  | gcc-gij-32bit                     | システム GNU Java バイトコードインタプリタ           | パッケージ
i | gcc-info                          | システム GNU コンパイラドキュメンテーション          | パッケージ
  | gcc-java                          | システム GNU Java コンパイラ                         | パッケージ
  | gcc-locale                        | システム GNU コンパイラ言語ファイル                  | パッケージ
  | gcc-obj-c++                       | システム GNU Objective C++ コンパイラ                | パッケージ
i | gcc-objc                          | システム GNU Objective C コンパイラ                  | パッケージ
i | gcc-objc-32bit                    | システム GNU Objective C コンパイラ                  | パッケージ
  | gcc33                             | GNU C コンパイラとサポートファイル                   | パッケージ
  | gcc33-32bit                       | GNU C コンパイラ 32 ビットサポート                   | パッケージ
  | gcc33-c++                         | GNU C++ コンパイラ                                   | パッケージ
  | gcc33-fortran                     | GNU Fortran コンパイラとサポートファイル             | パッケージ
  | gcc33-fortran-32bit               | GNU Fortran コンパイラとサポートファイル             | パッケージ
  | gcc33-info                        | gcc 向け GNU Info ページ                             | パッケージ
  | gcc33-locale                      | gcc-locale                                           | パッケージ
  | gcc33-objc                        | GNU Objective C コンパイラ                           | パッケージ
  | gcc33-objc-32bit                  | GNU Objective C コンパイラ                           | パッケージ
  | gcc33-testresults                 | Testsuite results                                    | パッケージ
i | gcc46                             | GNU C コンパイラとサポートファイル                   | パッケージ
i | gcc46-32bit                       | GNU C コンパイラ 32 ビットサポート                   | パッケージ
  | gcc46-ada                         | GCC をベースにした GNU Ada95 コンパイラ (GNAT)       | パッケージ
  | gcc46-ada-32bit                   | GCC をベースにした GNU Ada95 コンパイラ (GNAT)       | パッケージ
i | gcc46-c++                         | GNU C++ コンパイラ                                   | パッケージ
i | gcc46-fortran                     | GNU Fortran コンパイラとサポートファイル             | パッケージ
i | gcc46-fortran-32bit               | GNU Fortran コンパイラとサポートファイル             | パッケージ
  | gcc46-gij                         | gcc 向け Java バイトコードインタプリタ               | パッケージ
  | gcc46-gij-32bit                   | gcc 向け Java バイトコードインタプリタ               | パッケージ
i | gcc46-info                        | GNU コンパイラコレクション向けドキュメンテーション   | パッケージ
  | gcc46-java                        | GNU Java コンパイラ                                  | パッケージ
  | gcc46-locale                      | GNU コンパイラコレクション (GCC) の言語データ        | パッケージ
  | gcc46-obj-c++                     | GNU Objective C++ コンパイラ                         | パッケージ
i | gcc46-objc                        | GNU Objective C コンパイラ                           | パッケージ
i | gcc46-objc-32bit                  | GNU Objective C コンパイラ                           | パッケージ
  | gcc46-testresults                 | Testsuite results                                    | パッケージ
i | libgcc46                          | C コンパイラランタイムライブラリ                     | パッケージ
i | libgcc46-32bit                    | C コンパイラランタイムライブラリ                     | パッケージ
  | libstlport_gcc4                   | C++ STL library compatible with the latesttion       | パッケージ
  | libstlport_gcc4-devel             | Headers and Files Needed to Develop with libstlport_ | パッケージ
  
少なくとも、上記の "i" マークのパッケージが実装されていれば良い。
  
● glibcパッケージ内容確認( "i" マークは実装済みの意味)

photon0:/tmp # zypper search  glibc
リポジトリのデータを読み込んでいます...
インストール済みのパッケージを読み込んでいます...

S | 名前                     | 概要                                           | 種類
--+--------------------------+------------------------------------------------+-----------------
i | glibc                    | 標準共有ライブラリ (GNU C ライブラリ)          | パッケージ
  | glibc                    | 標準共有ライブラリ (GNU C ライブラリ)          | ソースパッケージ
i | glibc-32bit              | 標準共有ライブラリ (GNU C ライブラリ)          | パッケージ
i | glibc-devel              | 開発に必要なヘッダファイルとライブラリ         | パッケージ
i | glibc-devel-32bit        | 開発に必要なヘッダファイルとライブラリ         | パッケージ
  | glibc-devel-static       | C library static libraries for -static linking | パッケージ
  | glibc-devel-static-32bit | C library static libraries for -static linking | パッケージ
  | glibc-html               | GNU C ライブラリの HTML ドキュメンテーション   | パッケージ
i | glibc-i18ndata           | 'ロケール' (言語) 向けデータベースソース       | パッケージ
i | glibc-info               | GNU C ライブラリ向け Info ファイル             | パッケージ
i | glibc-locale             | 各国語対応プログラム向けロケール (言語) データ | パッケージ
i | glibc-locale-32bit       | 各国語対応プログラム向けロケール (言語) データ | パッケージ
  | glibc-obsolete           | GNU C ライブラリ提供の旧式共有ライブラリ       | パッケージ
  | glibc-profile            | libc プロファイルおよびデバッグ版              | パッケージ
  | glibc-profile-32bit      | libc プロファイルおよびデバッグ版              | パッケージ
  | glibc-utils              | Development utilities from GNU C library       | パッケージ
  | glibc-utils-32bit        | Development utilities from GNU C library       | パッケージ
i | linux-glibc-devel        | Linux headers for userspace development        | パッケージ

少なくとも、上記の "i" マークのパッケージが実装されていれば良い。

● パッケージのインストール方法(一例)

photon0:/tmp # zypper install gcc
リポジトリのデータを読み込んでいます...
インストール済みのパッケージを読み込んでいます...
'gcc' は既にインストール済みです。
'gcc-4.6-15.1.3.x86_64' に対する更新候補はありません。既に最新のバージョンがインストールされています。
パッケージの依存関係を解決しています...

すでに実装済みの場合は、上記のようなメッセージを出す。
"gcc"パッケージから入れて、実装状況を確認しながら足りないパッケージを
入れていく。なお、32ビットパッケージは、単独コマンドで入れる必要があるかもしれない。

Question  24. PGI 2013(PGI13.x) の Windows 版において事前に実装しておくべき、Microsoft(R)の Windows 8 SDK ソフトウェアについて教えてください。

Answer

2013年2月 初稿

 Windows 7、Windows 8, Windows Server 2008 R2、Server 2012 のシステムの場合のみ、必ず以下の Microsoft Windows 8 Software Development Kit(SDK)の事前導入が必要です。PGI ソフトウェアをインストールする前に、必ず実装してください。また、Windows 8 SDK をインストールする前に .NET Framework 4.5 の再頒布可能パッケージをインストールする必要があります。 このリリースの Windows 8 SDK には、.NET Framework の再頒布可能パッケージは含まれていません。.NET Framework 4.5 が実装されているかどうかの確認は、「コントロールパネル」--「プログラムと機能」画面において可能です。

 繰り返しますが、Windows 8 SDK は、以下のシステムにおいてのみ適用出来ます。Windows XP には適用出来ませんのでご注意ください。(Windows XP には、このソフトウェアは必要ありません

  • Windows 8
  • Windows Server 2012
  • Windows 7
  • Windows Server 2008 R2

 以下に、各ソフトウェアのダウンロードポインターを示します。あるいは、適宜、検索エンジンで探してください。

なお、Windows 8 SDK のインストールが終わった後、一度、Windowsシステムをリブートすることをお勧めします。

Question  25. PGI 2014(PGI14.x)、PGI 2015(PGI 15.x) の Windows 版において事前に実装しておくべき、Microsoft(R)の Windows 8.1 SDK ソフトウェアについて教えてください。

Answer

2015年10月 修正
2014年 2月 初稿

 Windows 7、Windows 8/8.1, Windows 10, Windows Server 2008 R2、Server 2012 のシステムの場合のみ、必ず以下の Microsoft Windows 8.1 Software Development Kit(SDK)の事前導入が必要です。PGI ソフトウェアをインストールする前に、必ず実装してください。このリリースの Windows 8.1 SDK には、これに必要な .NET Framework 4.5.1 の再頒布可能パッケージは含まれているようですので、.NET Framework 4.5.1 の明示的なインストールは必要ありません。なお、.NET Framework 4.5.1 が実装されているかどうかの確認は、「コントロールパネル」--「プログラムと機能」画面において可能です。

 繰り返しますが、Windows 8.1 SDK は、以下のシステムにおいてのみ適用出来ます。Windows XP には適用出来ませんのでご注意ください。(Windows XP には、このソフトウェアは必要ありません

  • Windows 10 for PGI 15.9以降
  • Windows 8, 8.1
  • Windows Server 2012
  • Windows 7
  • Windows Server 2008 R2

2015年10月現在、PGI 15.9(2015) において Windows 10 上で利用できるようになりましたが、この PGI 2015 の実装では、Windows 8.1 SDK を使用してください。まだ、 Windows 10 SDK はリリースされていません。

以下に、各ソフトウェアのダウンロードポインターを示します。あるいは、適宜、検索エンジンで探してください。

参考のため、.NET Framework 4.5.1のポインタを示します。事後に問題があるときに使用してください。

なお、Windows 8.1 SDK のインストールが終わった後、一度、Windowsシステムをリブートすることをお勧めします。

2014年11月以降に、Windows 8.1 SDK のインストールを行う方へ

2014年11月に Windows 8.1 SDK ソフトウェアはリビジョン・アップが行われました。この理由により、2014年11月以降にPGI 14.x バージョンを導入する場合は、PGI のインストーラを起動直後、以下の図で示されるメッセージが表示されます。
上述の Windows 8.1 SDK ソフトウェアの導入が成功している場合は、以下の問いには「いいえ」を選び、先に進んでください。PGI 15.x のインストールでは、こうしたダイアログは現れません。

Windows 8.1 SDK のソフトウェアは頻繁に更新されますが、実装してあるものが Windows "8.1" SDKである限り、PGIコンパイラは動作します。

Question  26. 64ビット版 Red Hat 7 (CentOS 7, Scientific Linux 7) 以降、Fedora 21以降のシステム上でインストールする際に必要とされる GNU のパッケージ(gcc,gfortran,glibc等)のインストールの方法を教えて下さい

Answer

2015年11月 補筆
2015年4月 初稿

CentOS 7 / RHEL 7 /Scientific Linux 7 以降の GCC tools chain を含む開発環境のインストールは、以下の yum コマンドで行います。(root 権限が必要)。日本語環境で行っても良いですが、以下の例は、英語環境で行った場合の例です。なお、 CentOS 6 / RHEL 6 /Scientific Linux 6 の場合の方法は、上記 FAQ 18 をご覧ください。

#  LANG=C yum grouplist
Loaded plugins: fastestmirror, langpacks
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
base       					| 3.6 kB  00:00:00
extras      				| 3.4 kB  00:00:00
updates     				| 3.4 kB  00:00:00
updates/7/x86_64/primary_db | 957 kB  00:00:09
Loading mirror speeds from cached hostfile
 * base: centos.usonyx.net
 * extras: centos.mirror.secureax.com
 * updates: ftp.iij.ad.jp
Available environment groups:
   Minimal Install
   Compute Node
   Infrastructure Server
   File and Print Server
   Basic Web Server
   Virtualization Host
   Server with GUI
   GNOME Desktop
   KDE Plasma Workspaces
   Development and Creative Workstation
Available Groups:
   Compatibility Libraries
   Console Internet Tools
   Development Tools        
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Scientific Support
   Security Tools
   Smart Card Support
   System Administration Tools
   System Management
Done

#  yum groupinstall 'Development tools'

もし、以下のようなメッセージが出た場合は、すでに実装済みであると言う意味となります。

Warning: Group development does not have any packages to install.
Maybe run: yum groups mark install (see man yum)
インストールまたは更新に利用できるいくつかの要求されたグループにパッケージがありません

なお、デフォルトの GNU ツールのインストールでは 64bit 開発環境のみとなるようなので、
32ビットの glibc 開発環境のインストールも行う時は、以下のglibc-devel.i686も実装するとよい
# yum search  glibc-devel
読み込んだプラグイン:fastestmirror, langpacks

glibc-devel.i686 : Object files for development using standard C libraries.
glibc-devel.x86_64 : Object files for development using standard C libraries.

# yum install  glibc-devel.i686

Downloading packages:
glibc-devel-2.17-106.el7_2.1.i686.rpm                  | 1.0 MB  00:00:12
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : glibc-devel-2.17-106.el7_2.1.i686                                                                    1/1
  検証中                  : glibc-devel-2.17-106.el7_2.1.i686                                                                    1/1

インストール:  glibc-devel.i686 0:2.17-106.el7_2.1

Fedora/RHEL 8/CentOS 8 の場合も同様にできますが、Fedora 22/RHEL 8/CentOS 8 から yum が dnf と言う新しいコマンドに変更されました。 基本的には同じ機能を持つコマンドです。コマンドの引数は、yum で使っていたものと同じです。従って、今までの yum コマンドを dnf コマンド名に置き換えて使用してください。

# LANG=C dnf grouplist
Last metadata expiration check performed 1:11:49 ago on Mon Nov 30 17:30:06 2015.
Available environment groups:
   Minimal Install
   Fedora Server
   Fedora Workstation
   Fedora Cloud Server
   KDE Plasma Workspaces
   Xfce Desktop
   LXDE Desktop
   LXQt Desktop
   Cinnamon Desktop
   MATE Desktop
   Sugar Desktop Environment
   Development and Creative Workstation
   Web Server
   Infrastructure Server
   Basic Desktop
Available groups:
   Administration Tools
   Audio Production
   Authoring and Publishing
   Books and Guides
   C Development Tools and Libraries
   Cloud Infrastructure
   Cloud Management Tools
   Container Management
   D Development Tools and Libraries
   Design Suite
   Development Tools
   Domain Membership
   Fedora Eclipse
   Editors
   Educational Software
   Electronic Lab
   Engineering and Scientific
   FreeIPA Server
   Games and Entertainment
   Headless Management
   LibreOffice
   MATE Applications
   MATE Compiz
   Medical Applications
   Milkymist
   Network Servers
   Office/Productivity
   Robotics
   RPM Development Tools
   Security Lab
   Sound and Video
   System Tools
   Text-based Internet
   3D Printing
   Window Managers
   
# dnf groupinstall 'Development tools'
依存性が解決されました。
インストール済みとマークしました:
 開発ツール     diffstat            giggle          doxygen
                mercurial           tig             lcov
                quilt               cvs             cvsps
 
 (中略)
インストール:
  binutils.x86_64 2.25-15.fc23          cpp.x86_64 5.1.1-4.fc23                   cvs.x86_64 1.11.23-39.fc23
  diffstat.x86_64 1.60-1.fc23           doxygen.x86_64 1:1.8.10-6.fc23            dyninst.x86_64 9.0.3-1.fc23
  gcc.x86_64 5.1.1-4.fc23               glibc-devel.x86_64 2.22-5.fc23            glibc-headers.x86_64 2.22-5.fc23
  isl.x86_64 0.14-4.fc23                kernel-debug-devel.x86_64 4.2.6-301.fc23  kernel-headers.x86_64 4.2.6-301.fc23
  libdwarf.x86_64 20150915-1.fc23       libmpc.x86_64 1.0.2-4.fc23                libserf.x86_64 1.3.8-1.fc23
  patchutils.x86_64 0.3.4-3.fc23        rcs.x86_64 5.9.4-3.fc23                   subversion.x86_64 1.9.2-1.fc23
  subversion-libs.x86_64 1.9.2-1.fc23   systemtap.x86_64 2.9-1.fc23               systemtap-client.x86_64 2.9-1.fc23
  systemtap-devel.x86_64 2.9-1.fc23     systemtap-runtime.x86_64 2.9-1.fc23
完了しました!

Fedoraの場合は、上記のパッケージの他に、gcc-fortran と gcc-g++ もパッケージを明示的に実装する
必要があるようです。

# dnf search gfortran
============= N/S Matched: gfortran =======
libgfortran.i686 : Fortran runtime
libgfortran.x86_64 : Fortran runtime
gcc-gfortran.i686 : Fortran support
gcc-gfortran.x86_64 : Fortran support
libgfortran-static.i686 : Static Fortran libraries
libgfortran-static.x86_64 : Static Fortran libraries
mingw32-gcc-gfortran.x86_64 : MinGW Windows cross-compiler for FORTRAN for the win32 target
mingw64-gcc-gfortran.x86_64 : MinGW Windows cross-compiler for FORTRAN for the win64 target
compat-libgfortran-41.i686 : Compatibility Fortran 95 runtime library version 4.1.2
compat-libgfortran-41.x86_64 : Compatibility Fortran 95 runtime library version 4.1.2

# dnf -y install gcc-gfortran.x86_64  libgfortran-static.x86_64 compat-libgfortran-41.x86_64 libgfortran.x86_64

# dnf -y install gcc-c++.x86_64

Question  25. PGI 2016(PGI16.x) の Windows 版において事前にインストールしておくべき、Microsoft のソフトウェアについて教えてください。

Answer

2016年 3月 更新

 Windows上の以下の二つのソフトウェアを必ず、ご確認ください。事前導入が必要です。

  • Microsoft Update for Universal C Runtime (KB2999226更新プログラム)
  • Microsoft Windows Software Development Kit (SDK)

-----------------------------------------------------------------------------------------------------------

① Microsoft Update for Universal C Runtime (KB2999226) のインストール

 汎用 C ランタイム (CRT) の更新プログラムです。 Windows 10 には必要ありません。Windows 10 以前のウインドウズ (Windows 7, 8, 8.1, Server 2008R2/2012) の場合に必須です。以下のポインタから適切なファイルをダウンロードしてインストールして下さい。これは、KB2999226と言う Windows 更新プログラムの一つですが、自動アップデートで実装されている場合もあります。必要であれば確認してください。Windows Update の画面を開き「インストール済みの更新プログラム」表示画面で KB2999226 を検索してください。

② Microsoft Windows Software Development Kit (SDK)のインストール

 PGI 16.3 以降をインストールする場合、Windows 7、Windows 8/8.1, Windows 10, Windows Server 2008 R2、Server 2012 のシステムには、必ず以下の Microsoft Windows Software Development Kit(SDK)の事前導入が必要です。PGI ソフトウェアをインストールする前に、必ず実装してください。このソフトウェアの確認は、「コントロールパネル」--「プログラムと機能」画面において可能です。これは、以下の Microsoft ダウンロード センターからダウンロードできます。PGI Workstation ならびに PGI Visual Fortran の 種別により必要な Win SDK のバージョンが異なります。ご注意ください。

以下の図は、Windows 10 SDK インストール・ウィザードの例です。ネットワーク・インストールあるいは、ダウンロードしてインストールのどちらかを選び、インストールを進めて下さい。

Windows 10 SDK インストール

なお、Windows SDK のインストールが終わった後、一度、Windowsシステムをリブートすることをお勧めします。

Question  26. PGI の Windows 版において事前にインストールしておくべき、Microsoft のソフトウェアについて教えてください。

Answer

2020年 2月 更新
2018年11月 更新
2018年 2月 更新
2017年 5月 更新
2017年 2月 更新

 PGI 18.10 以降 のWindows版コマンドライン・コンパイラ(PVFは除く)では、以下の三つの Micorosoft 社ソフトウェアの事前導入が必要です。当該バージョンのインストール方法については、次の FAQ に詳しく説明しています。

  • Microsoft Update for Universal C Runtime (KB2999226更新プログラム)
  • Microsoft Windows Software Development Kit (SDK)
  • Microsoft Visual Studio 2017(community, professional, enterpriseのいずれか)
       PGI 20.1 以降は Microsoft Visual Studio 2019 でもよい

 PGI 18.7 以前 の Windows 版バージョンでは、以下の二つの Micorosoft 社ソフトウェアの事前導入が必要です。また、2018年8月に新規販売が終息した PGI Visulal Fortran(PVF)の18.10以降の更新版の場合は、以下の2つのソフトウェアの実装が必要ですが、すでに過去のインストールにおいて実装済みであればインストールの必要はありません。

  • Microsoft Update for Universal C Runtime (KB2999226更新プログラム)
  • Microsoft Windows Software Development Kit (SDK)

-----------------------------------------------------------------------------------------------------------

① Microsoft Update for Universal C Runtime (KB2999226) のインストール

 汎用 C ランタイム (CRT) の更新プログラムです。 Windows 10、Server 2016 には必要ありません。Windows 10 以前のウインドウズ (Windows 7, 8, 8.1, Server 2008R2/2012) の場合に必須です。以下のポインタから適切なファイルをダウンロードしてインストールして下さい。これは、KB2999226と言う Windows 更新プログラムの一つですが、自動アップデートで実装されている場合もあります。必要であれば確認してください。Windows Update の画面を開き「インストール済みの更新プログラム」表示画面で KB2999226 を検索してください。

② Microsoft Windows Software Development Kit (SDK)のインストール

 Windows 7、Windows 8/8.1, Windows 10, Windows Server 2008 R2、Server 2012/2016 のシステムには、必ず「以下に示すバージョン」の Microsoft Windows Software Development Kit(SDK) の事前導入が必要です(PGI 18.10 以降での以下の ③ Microsoft Visual Studio 2017のインストールを行うと、当該 Windows SDK は同時にインストールされますので、この②の作業は必要ありません)。
 PGI ソフトウェアをインストールする前に、必ず実装してください。実装されているかどうか、あるいは、このソフトウェアのバージョンの確認は、「コントロールパネル」--「プログラムと機能」画面において可能です。これは、以下の Microsoft ダウンロード センターからダウンロードできます。(1) PGI Workstation(bashコマンドプロンプトで使用するもの)ならびに (2) PGI Visual Fortran(Visual Studio 内で使用するもの)の 種別により必要な Windows SDK のバージョンが異なります。ご注意ください。

【注意】 Windows SDK 10 のバージョンは更新され、都度、新しくリリースされます。PGIは、以下のリンクから入手できるバージョンを推奨しております。なお、過去に実装した「Windows SDK for Windows 10 or 8.1」は、そのまま削除せず、これより新しいバージョンを追加実装しても構いません)。例えば、筆者の PC には、Windows SDK 10.0.14393.33(PGI 2017で使用したもの)、 Windows SDK 10.0.15063.468(PGI 2018で推奨するもの)、Windows SDK 8.1(旧PGI 2015を使用するため)の3種の SDK ソフトウェアが実装されています。)

使用する PGI 製品 Windows の Version 必要な Windows SDK Version
PGI 2020, 2019, 2018, 2017, 2016の全製品 (PVFを含む) Windows 7 SP1 以上の OS Windows SDK for Windows 10
PGI Visual Fortran(PVF)
 Release 2017 or 2016
for Microsoft Visual Studio 2013
Windows 7 以上の OS Windows SDK for Windows 8.1
All PGI 2015 or PGI 2014製品 Windows 7 以上の OS Windows SDK for Windows 8.1
All PGI 2013 製品 Windows 7 以上の OS Windows SDK for Windows 8

なお、(1) PGI Workstationソフトウェアと(2) PVF のどちらも実装して使用することができます。この場合で例えば、Windows 7 内に (1)と(2)の PVF with Visual Studio 2013 の両方をインストールし使用したい場合は、「Windows 10 SDK」と「Windows 8.1 SDK」の両方をインストールしてください。最初に「Windows 8.1 SDK」を入れてから新しい「Windows 10 SDK」を入れてください。Windows システム上、両方入れておいても問題はありません。

Windows SDK のインストールが終わった後、一度、Windowsシステムをリブートすることをお勧めします。

③ Microsoft Visual Studio 2017のインストール

PGI 18.10 以降、Microsoft Visual Studio 2017 with Visual C++ のソフトウェアが事前にインストールされている必要があります。Microsoft Visual Studio 2017 の community、professional、enterprise のいずれかの edition を事前に導入して下さい。インストールの方法については、以下の FAQ 27 をご覧ください

PGI 20.1 以降、Microsoft Visual Studio 2017 あるいは 2019 with Visual C++ のソフトウェアが事前にインストールされている必要があります。Microsoft Visual Studio 2017 or 2019 の community、professional、enterprise のいずれかの edition を事前に導入して下さい。インストールの方法については、以下の FAQ 28 をご覧ください

Question  27. PGI 18.10 ~ 19.10 の Windows用コマンドライン・コンパイラ(PVFを除く)には、事前に Microsoft Visual Studio 2017 のインストールが必要ですが、そのインストールの方法を教えて下さい。

Answer

2018年11月作成/ 2020年 2月修正

以下の手順は、PVF を除く PGI 18.10 (2018年10月版) ~ 19.10に適用されます。PGI 18.7 以前の場合は、上記 PGI 18.7 以前の Windows 版バージョンの場合をご参照ください。

 Windows 用の PGI コマンドラインコンパイラおよびツールには、次に示す Microsoft ソフトウェアをインストールする必要があります。以下に列挙したソフトウェアは、「Visual Studio 2017」のインストールを行うことにより、全て導入することができます。新規販売が終息した PGI Visulal Fortran(PVF) の更新版をインストールする際は、旧Visual Studio 2015 を基盤としておりますので、以下の作業は行わないで下さい。
なお、最新の Visual Studio 2019 は使用できませんので、2017バージョンを必ず実装して下さい。

  • Visual Studio 2017 に装備されている Microsoft Visual C++ 開発環境
  • Windows 10 SDK

 上記のソフトウェアのいずれかが、システム内に存在しない場合は、PGI Windows 版のインストーラーは途中で終了しますのでご注意下さい。PGI製品のWindowsへのインストールと操作を正しく行うために、以下のガイドラインに従ってください。

  1. 最初に、ご使用のオペレーティングシステム用の最新のアップデートをインストールしていることを確認してください。 Windows 10の場合、設定アプリケーションで更新を確認できます。 Windows の設定 -> 更新とセキュリティ -> Windows updateを確認する
  2. Visual Studio 2017のコミュニティ版、プロフェッショナル版、またはエンタープライズ版のいずれかをインストールします。Visual Studio 2017(Version 15.9) を使用します。Visual Studio 2017 用の Webインストーラ (2017用のポインタです)をダウンロードして実装してください。あるいは、Visual Studio のアーカイブから 2017(15.9) バージョンをダウンロードしてください。
    Visual Studio 2017 には、オフラインISOインストーラはありません。 必要があれば、Microsoftにはオフラインインストールガイドがあり、独自のオフラインインストーラーを作成するオプションについて詳しく説明しています。
  3. PGI Windows製品は、Visual Studio に含まれる Visual C++ ツールチェーンに依存しています。事前に Visual C++ がシステムにインストールされている必要があります。完了する前にPGIのインストールが終了します。

    Visual Studio のインストールでは、デフォルトでは、Visual C++ がインストールされないことに注意してください。 インストールするには最初に実装するソフトウェアの設定を変更する必要があります。 Visual C++ をインストールするには、次の手順を実行します。

    • Visual Studio のインストールプログラムを起動します。
    • インストールの最初の時点で、次のような画面が表示されます。「ワークロード」ヘッダーの下で「C++によるデスクトップ開発」を選択(チェックを入れる)します。 これにより、インストールの右サイドの詳細リストにインストールするコンポーネントが自動的に入力されます。
      デフォルトでは、「C++によるデスクトップ開発」をチェックすると Windows 10 SDK もインストールされます。 当該 SDK を Visual Studio の一部としてインストールしない場合は、後で別のパッケージとしてインストールできます。
    • 「インストール」ボタンをクリックし、インストーラを進めます。 完了したら、Windows 用の PGI インストーラを実行します。

Question  28. PGI 20.1 以降の Windows用コマンドライン・コンパイラ(PVFを除く)には、事前に Microsoft Visual Studio 2017 あるいは 2019 のインストールが必要ですが、そのインストールの方法を教えて下さい。

Answer

2020年2月作成

以下の手順は、PVF を除く PGI 20.1 (2020年1月版) 以降に適用されます。

 Windows 用の PGI コマンドラインコンパイラおよびツールには、次に示す Microsoft ソフトウェアをインストールする必要があります。以下に列挙したソフトウェアは、「Visual Studio 2017 or 2019」のインストールを行うことにより、全て導入することができます。

  • Visual Studio 2017 or 2019 に装備されている Microsoft Visual C++ 開発環境
  • Windows 10 SDK

 上記のソフトウェアのいずれかが、システム内に存在しない場合は、PGI Windows 版のインストーラーは途中で終了しますのでご注意下さい。PGI製品のWindowsへのインストールと操作を正しく行うために、以下のガイドラインに従ってください。

  1. 最初に、ご使用のオペレーティングシステム用の最新のアップデートをインストールしていることを確認してください。 Windows 10の場合、設定アプリケーションで更新を確認できます。 Windows の設定 -> 更新とセキュリティ -> Windows updateを確認する
  2. Visual Studio 2017 or 2019 のコミュニティ版、プロフェッショナル版、またはエンタープライズ版のいずれかをインストールします。Visual Studio 2017 or 2019を使用します。Visual Studio 2017 or 2019 用の Webインストーラ (2019用のポインタです)をダウンロードして実装してください。
  3. PGI Windows製品は、Visual Studio に含まれる Visual C++ ツールチェーンに依存しています。事前に Visual C++ がシステムにインストールされている必要があります。完了する前にPGIのインストールが終了します。

    Visual Studio のインストールでは、デフォルトでは、Visual C++ がインストールされないことに注意してください。 インストールするには最初に実装するソフトウェアの設定を変更する必要があります。 Visual C++ をインストールするには、次の手順を実行します。

    • Visual Studio のインストールプログラムを起動します。
    • インストールの最初の時点で、次のような画面が表示されます。「ワークロード」ヘッダーの下で「C++によるデスクトップ開発」を選択(チェックを入れる)します。 これにより、インストールの右サイドの詳細リストにインストールするコンポーネントが自動的に入力されます。
      デフォルトでは、「C++によるデスクトップ開発」をチェックすると Windows 10 SDK もインストールされます。 当該 SDK を Visual Studio の一部としてインストールしない場合は、後で別のパッケージとしてインストールできます。
    • 「インストール」ボタンをクリックし、インストーラを進めます。 完了したら、Windows 用の PGI インストーラを実行します。