Windows® 版の PGI Professional あるいは、旧製品名 PGI Workstation/Server (コマンドベースのコンパイラ)を使用するに当たっての環境設定等の準備について、説明します。
PGIトップ PGI for Windows版 Windows版の使用環境
Windows® 版の PGI Professional あるいは、旧製品名 PGI Workstation/Server (コマンドベースのコンパイラ)を使用するに当たっての環境設定等の準備について、説明します。
PGI コマンド・プロンプト(ウィンドウ)の起動方法は二つあります。
一つの方法は、デスクトップ上に、「PGI Workstation」と言うアイコンがありますので、このアイコンをクリックすると、以下のような PGI コマンド・プロンプト(ウィンドウ)が現れます。64bit Windows® の場合は、デフォルト64ビットモードのコンパイラ・システムが起動されます。これらのウインドウは、bash シェルインタフェースで DOS コマンドも使用できるものとなります。
二つ目の方法は、Windows® のプログラム・メニューから「PGI Workstation」メニューを引き出し、この中のサブメニュー 「Command shells xx.x」を選ぶと、「PGI Cmd (64bit)」と「PGI Bash (64bit)」がありますので、このいずれかを選んで起動する方法です。「PGI Bash (64bit)」で起動されるウィンドウは、Linux の bash シェルのエミュレートモード(cygwin 環境)の画面となります。「PGI Cmd (64bit)」 からも起動できますが、この場合、Windows®ネイティブの DOSプロンプトの画面上で PGI コンパイラがを使用できます。(DOSプロンプトの場合は、dir 等の DOSコマンドを使用します)
(注意)
上記で説明したとおり、PGI が提供する「コマンド・ウィンドウ」には、以下の二つがあります。
① "PGI Workstation"(PGI Bash) コマンド・プロンプト
② "PGI Command Prompt"(PGI Cmd)コマンド・プロンプト
これらのコマンドプロンプトを起動する Windowsのバッチファイルは以下の場所にあります。(以下のパス名は、Win64 環境の場合で説明します)
C:\Program files\PGI\win64\{revision番号}\pgi.bat --> ①を起動
C:\Program files\PGI\win64\{revision番号}\pgi_dos.bat --> ②を起動
pgi.bat と pgi_dos.bat の内容を確認していただくと理解できますが、これらは Windows環境のバッチファイルです。必要な検索 PATH の設定を行い、このファイルの最後にどの実行シェル環境を使用するかを定義しています。
①の場合の(実行)シェル環境
bash (これは Cygwin/Linux 環境の bash 環境を起動する)
②の場合の実行環境
cmd (これは、Windows 環境の純粋な cmd コマンドプロンプトを起動する)
どちらも場合も PGI コンパイラの実行のための検索 PATH の設定は同じですどちらの「コマンド・ウィンドウ」環境でもPGIコンパイラ・コマンドを使用できます。①は、完全な bash シェル環境であること、②の場合は、純粋な Windows の「コマンドプロンプト」環境であると言う違いだけです。
この二種類の「コマンド・ウィンドウ」の原理原則を理解していただければ、次のことが理解できます。例えば、 Linux bash (Cygwin bash) で使用される「HOME環境変数」の考え方です。
①の"PGI Workstation" コマンド・プロンプトは、あくまでも Cygwin=Linux 環境と同じ概念で HOME 等の環境変数を考えれば良いことになります。 bash 環境の中で HOME と言う環境変数が存在します。従って、マイコンピュータのプロパティで、ユーザー環境変数 HOME を設定すれば、Windows システム内にの全てのプロセスにおいて、HOME環境変数が反映され、cygwin-bash が起動された場合も、HOME と言う設定内容が bash 環境に引き継がれます。すなわち、 HOME 環境変数が認識できます。
一方、②の PGI Command Prompt (x64) は純粋な Windows の世界の環境です。ただ、 PGI コマンド、cygwin コマンドが使用できると言う環境です。このコマンドプロンプト環境は、Windows の cmd 環境であり、Linuxシェル環境で言う一般的な HOME と言うビルトイン的な環境変数は認識はしません。従って、コマンド cd と入力すると HOME ポジションに移動するようなことはできません。
純粋に Linux のエミュレート Cygwin 環境で使用したい場合は、①"PGI Workstation" コマンド・プロンプトの環境を使用することをお勧めします。
デスクトップ上に、「PGI Workstation」と言うアイコンがあります。このアイコンをクリックすると、以下のような PGI コマンド・プロンプト(ウィンドウ)が現れます。
このウィンドウのサイズ等の「プロパティ」を変更するには、ウィンドウ上部(青地)にカーソルを置き、右クリックで下記のようなプルダウンメニューが現れますので、この中の「プロパティ」で、カスタマイズ・変更してください。Windows 7以降では、コマンドプロンプトのウインドウの特性変更を行う場合は、PGI Workstation を起動する際に、必ず、「管理者として実行」を行ってください。(マウス右ボタンでこのモードが選べます)これを行わない場合、変更した特性がストア出来ません。
端末ウィンドウ画面内のテキストをコピーする方法は、以下の通りです。端末ウインドウ(上図参照)の上辺にマウスを当ててください。そこで、右クリックします。「編集」メニューを選ぶと、さらにメニューが出てきます。そこで、「範囲指定」あるいは「マーク」と言うメニューを選びます。その後、端末内のコピーしたい部分をマウスをクリックしながらその範囲をなぞります。その後、ENTERを押すと、Windowsのバッファにコピーされます。
一般的なPGI コンパイラの使用においては、「PGI Bash」コマンド・プロンプト(上記の説明では①の環境)を使用します。この場合は、Linuxコマンドを利用することができます(もちろん、DOSコマンドも使えます)。Windows®上で、コマンドプロンプトの初期画面を開いた状態では、Windows® OS のデフォルト設定により、ホーム・ディレクトリが以下の場所となっていますので、ご注意ください。以下の場所から、cd コマンドで所望の場所へ移動してください。
C:\Documents and Settings\{ユーザ名}\デスクトップ
なお、Windows®上で PGI コンパイル作業のために使用するフォルダ (directory)を英語名で作成した方が無難です。そのフォルダ(directory)をホーム・ディレクトリとしたい場合は、以下のように Windows® 上での環境変数HOMEを設定してください。設定の際は、一度、今開いている PGI Workstation のコマンド・プロンプトのウインドウを終了した方が良いでしょう。Windows®の「コントロールパネル」の中の「システム」をクリックしてください。その後、「詳細設定」と言うタブをクリックすると、以下のような画面が現れます。この画面の中の下部に、「環境変数」と言うボタンがありますので、これをクリックします。
以下のような環境変数を設定する画面で、「ユーザの環境変数」部の「新規」のボタンを押します。これで、新規に設定する環境変数が定義できます。HOME環境変数を用いて、PGI コマンドプロンプト上の BASH シェル環境における HOME directory の設定を行うことができます。例えば、デフォルトのホーム領域を C:\PGI とした場合は、以下のような設定を行います。
HOME --> C:\PGI
以上で、HOME環境変数の設定は終わります。再度、PGI Workstation のアイコンをクリックして、コマンド・プロンプトのウインドウを立ち上げてください。起動直後の directory は、C:\Documents and Settings\{ユーザ名} にありますが、cd コマンドを一回実行すると設定したホーム・ディレクトリに移ります。
PGI コンパイラの使用は、基本的に 「PGI コマンド・プロンプト」画面上での処理となりますが、Windows® の一般の「DOSプロンプト」あるいは、エクスプローラ上でも実行モジュールを実行したい場合があります。予め PATH 環境変数に PGI 提供の DLL のライブラリ・パスを設定してない場合、「pg.dll が発見できない」等のエラーメッセージで実行ができまない場合があります。このような場合は、以下のような方法で、Windows® の環境変数を設定しておくことをお勧めします。なお、「PGI コマンド・プロンプト」では、その起動バッチファイルでこの DLL 等の PATH の設定が予め行われております。
上記で示した方法で、Windows® の「コントロールパネル」の中の「システム」をクリックしてください。その後、「詳細設定」を開いてください。この画面の中の下部に、「環境変数」と言うボタンがありますので、これをクリックすると以下のような画面が出ます。 ユーザ環境変数に設定するか、システム環境変数に設定するかは、どちらかをお選びください。ここで、環境変数 PATH を設定します。すでに別の用途で設定している場合は、「編集」ボタン、新規に設定する場合は、「新規」ボタンを押して、PATH を次のように設定して下さい。
【32bit専用製品(Win32)の場合】 PATH --> C\Program Files\PGI\win32\{revision番号}\bin;%PATH% (セミコロンで %PATH% と分離) 【32bit/64bit製品(win64)の場合】 PATH --> C\Program Files (x86)\PGI\win32\{revision番号}bin;%PATH% PATH --> C\Program Files\PGI\win64\{revision番号}\bin;%PATH% (セミコロンで %PATH% と分離)
ここで、上記の {revision番号} は、インストールした PGI のバージョン(リビジョン)番号です。上記の PATH の記述は「正確」に行ってください。一部でも不備があれば、必要な dll ファイルが発見できないと言うエラーになります。
PGI 7.2 以降、Windows版のオブジェクトのリンク形式のデフォルトが「スタティック・リンク」となりましたので、以下のようなダイナミック・ライブラリ(DLL)が見つからないと言う、以下に述べる問題はでません。しかしながら、ダイナミック・リンク形式でモジュールを作成した場合で、この実行モジュールを別のシステムで実行させたい場合は、PGI用の DLL もコピーして、DLLの場所を示すための PATH の設定も必要となります。
PGI DLLライブラリのコピー
コンパイル済みの実行モジュールを PGI コンパイラがインストールされていない別のシステムで実行する場合、実行時に PGI が提供する専用 dll ファイルがリンクされることになります。したがって、この「PGI が提供する専用 dll ファイル」を実行用のシステムのあるディレクトリにコピーして、そのディレクトリを上記の PATH 環境変数の中に「追加指定」しておく必要があります。このディレクトリは複数のユーザがアクセス可能な任意の場所で構いませんが、一般には、上記で述べた PGI コンパイラの正規の実装場所と同じにしておいた方が無難でしょう。すなわち、以下のディレクトリを明示的に作成します。以下の例では、PGI バージョン7.2用の dll を実装するものと仮定しています。バージョンが異なれば、そのバージョン名を記します。 バージョン名は必ず、完全なバージョン名(Windows上の explore でバージョンのフォルダー名を確認して下さい)を記してください。
【32bit専用製品(Win32)の場合】 C\Program Files\PGI\win32\{revision番号}\bin 【32bit/64bit製品(win64)の場合】 C\Program Files (x86)\PGI\win32\{revision番号}\bin C\Program Files\PGI\win64\{revision番号}\bin
配布すべき「PGI が提供する専用 dll ファイル」 は、以下の場所に存在します。
PGI コンパイラをインストールしたシステム上で、以下のディレクトリ配下に存在しますので、この中のすべての dll ファイルをコピーしてご使用ください。(このファイルは、PGI 使用許諾契約上、コピーしても問題ないファイルです) なお、以下で下線で示した {revision番号} は、インストールしたバージョン(リビジョン)番号を示します。
【32bit専用製品(Win32)の場合】 C\Program Files\PGI\win32\{revision番号}\REDISTの配下 【32bit/64bit製品(win64)の場合】 C\Program Files (x86)\PGI\win32\{revision番号}\REDISTの配下 C\Program Files\PGI\win64\{revision番号}\REDISTの配下
この配下の dll ファイルを任意の場所にコピーした後、上記の項で示した PATH 環境変数の追加設定を行います。以下の例では、PGIコンパイラの実装フォルダーと同じ場所にコピーした場合を示しています。これで、他のシステム上でPGIの実行モジュールを実行できます。
【32bit専用製品(Win32)の場合】 PATH --> C\Program Files\PGI\win32\{revision番号}\bin;%PATH% (セミコロンで %PATH% と分離) 【32bit/64bit製品(win64)の場合】 PATH --> C\Program Files (x86)\PGI\win32\{revision番号}bin;%PATH% PATH --> C\Program Files\PGI\win64\{revision番号}\bin;%PATH% (セミコロンで %PATH% と分離)
Microsoft® Redistributables に関して
PGI コンパイラは、Microsoft® Open Toolsを使用しています。 Microsoft Open Tools のディレクトリ配下に、「redist」というディレクトリが存在します。この中に、Microsoft Open Tools が使用する DLL ファイルが保存されておりますので、これも同様に、実行モジュールを動作させる他のシステムにコピーします。(この redist 配下の DLL ファイルは、PGI のライセンス許諾契約上、再配布することは許可されております)。
【32bit専用製品(Win32)の場合】 C\Program Files\PGI\Microsoft Open Tools 10\REDIST\x86 C\Program Files\PGI\Microsoft Open Tools 11\REDIST\x86 C\Program Files\PGI\Microsoft Open Tools 12\REDIST\x86 【32bit/64bit製品(win64)の場合】 C\Program Files\PGI\Microsoft Open Tools 10\REDIST\AMD64 C\Program Files\PGI\Microsoft Open Tools 11\REDIST\AMD64 C\Program Files\PGI\Microsoft Open Tools 12\REDIST\AMD64
PGI Workstation」コマンドプロンプト内は、Linux 互換の bash シェル環境となっております。従って、このウィンドウ内で、一般的なシェルコマンドがご利用になれます。また、ログイン時にシェル内の環境変数やエイリアス等の設定で使用される、.bashrc のドット・ファイルも有効に機能します。これらのファイルを有効にする場合は、上記で設定した HOME 環境変数で定義したフォルダ(ディレクトリ)下にドットファイルを置いて下さい。
PGI 11.1 以前の cygwin 1.3.x 環境では、「PGI Workstation」 コマンドプロンプト内は、デフォルトで英語モードとなっています(PGI 2011の 11.2以降、2バイト文字をサポートするcygwin 1.7系となった)。この場合、ls (dir) 等のコマンド出力、cygwin(Linux) コマンドのエラーメッセージ等は、全て英語モードとなっています。例えば、コマンドラインで「日本語入力」することはほとんどないかと思いますが、もちろん、このようなことは避けた方が望ましいのですが、ls コマンドで日本語のファイル等の名前を日本語で出力したい場合があります。特に、ls に関しては、その要望が強いと思われますので、以下の方法で日本語モードで出力できるようになります。なお、PGI 11.2 以降は、デフォルトで cygwin 環境での日本語表示が可能です。
cygwin 環境( PGI コマンドプロンプトを起動した環境)で、Linux で言う、「HOME directory」 配下で、ls コマンドに対するエイリアス設定を行います。HOME ディレクトリの設定は、上記で説明しました。この配下に、ユーザが bash シェルを使用する際の設定ファイルである、.bashrc(ドットファイル)を作成し、この中に、ls コマンドのエイリアスを設定します。
PGI$ cd (HOMEディレクトリへ移動する) PGI$ vi .bashrc (エディタで .bashrc ファイルを開く) (以下のエイリアス行を追加) alias ls='ls --show-control-chars' (ファイルを閉じる) PGI$ exit (これで一回、このプロンプト・ウィンドウを exit する) 再度、PGIコマンド・プロンプトを立ち上げる
cygwin 環境の日本語環境をカスタマイズした際に、何らかの問題が潜在的に生じた場合、PGI コマンドプロンプト内で、GNU互換の make ユーティリティ等を使用するとそのメッセージが文字化けすることがあります。この場合は、以下の シェルコマンド(export LANG=C)で、シェル環境を「英語モード」に変更してください。
PGI$ make make: *** メッセージの文字が化ける.... PGI$ export LANG=C PGI$ make make: *** No targets specified and no makefile found. Stop.
日本語文字を含むプログラムの場合、そのソースファイル自体を shift-JIS コードでセーブしなければなりません。utf-8 形式のファイルの場合は、日本語文字は実行時の出力時に化けます。
※本ページに記載されている会社名、製品名は、各社の登録商標または商標です。