FreeBASIC CompilerTools
FreeBASIC コンパイラ(fbc)が、コンパイルの過程で呼び出すかもしれない、外部のツール。
記述:
FreeBASIC は、ソースコードをコンパイルするために、fbc コンパイラに加えて、いくつかのツールを使用します。
fbc によって使用される、正確なツールと、それらがどう呼び出されるかは、fbc がどう構成されたかによります。構成とは、ホスト・プラットホーム(fbc が稼働するところ)、目標プラットホーム(作られた実行可能ファイルが、実行されるところ)、および別の選択肢(環境変数とコマンドラインのオプションのような)です。
FreeBASIC (fbc) は、次の2つの内、 1つの方法で、構成されます:
「standalone」か、「prefixed」のどちらかで。
「standalone」バージョンは、実行可能ファイルが位置する場所から相対的に、ディレクトリを捜します。
「prefixed」バージョンは、コンパイラに、追加ツールとライブラリの場所を示すように構成された、決め打ちの経路を持ちます。
FreeBASIC を構成する詳しい情報については、FreeBASIC ソースの src/compiler ディレクトリに登録されている INSTALL テキスト・ファイルを、参照ください。
インストールされた
fbc のバージョンが、「standalone」か「prefixed」かは、fbcを、コマンドライン・オプション
-version で呼び出すことによって、チェックできます。
参考:渡辺の環境
c:\>cd c:\tool\freebasic
c:\Tool\FreeBASIC>fbc -version
FreeBASIC Compiler - Version 0.23.0 (08-14-2011) for win32 (target:win32)
Copyright (C) 2004-2011 The FreeBASIC development team.
Configured as standalone
objinfo enabled using FB BFD header version 217
Standalone
fbc が「standalone」として構成されると、
fbc は、
fbc の実行ファイルが登録された場所を基準に、相対的に、ファイルを、探します。
fbc は、ディレクトリ・ツリーの「先端」にあって、その下のサブディレクトリを捜します。
「先端」のディレクトリ(
fbc が登録されている場所が、デフォルト)は、
-prefix コマンドライン・オプションで、覆すことができます。
下の説明のディレクトリで "topdir" と表示している部分は、
fbc 実行可能ファイルが登録されたディレクトリか、または
-prefix コマンドライン・オプションで指定した(それを与えたなら)ディレクトリを表します。
"<target>" は、
-target オプションで指定されたものと同じ名前を持っている、目標プラットホームを示します。
クロス・コンパイルしないなら、
fbc は、以下の配置になります:
- /topdir/inc
- /topdir/lib/<target>
- /topdir/bin/<target>
-
gcc は、なくなったライブラリのために、問い合わせられます。
(現在、linux/freebsd の場合だけです)
クロス・コンパイルすると、
fbc は、以下の配置になります:
- /topdir/inc
- /topdir/lib/<target>
- /topdir/bin/<target>
-
gcc は、問い合わせられません。
(目標ライブラリ・ディレクトリだけが、使われます)
Prefixed
fbc が、「prefixed」として構成されると、
fbc は、構成された接頭語(
fbc 実行可能ファイルの中で、決め打ちされている)から相対して、ファイルを検索します。
下の説明のディレクトリで "prefix" と表示している部分は、構成された接頭語を表すか、または
-prefix コマンドライン・オプションで指定した(それを与えたなら)ディレクトリを表します。。
"
<target>" は、
-target オプションで指定されているものと同じ名前を持っている目標プラットホームを示します。
クロス・コンパイルしないなら、
fbc は、以下の配置になります:
- /prefix/include/freebasic
- /prefix/lib/freebasic/<target>
- /prefix/bin/freebasic/<target>
-
gcc は、なくなったライブラリのために、問い合わせられます。
(現在、linux/freebsd の場合だけです)
クロス・コンパイルするなら、
fbc は、以下の配置になります:
- /prefix/include/freebasic
- /prefix/lib/freebasic/<target>
- /prefix/bin/freebasic/<target>
-
gcc は、問い合わせられません。
(目標ライブラリ・ディレクトリだけが、使われます)
GCC 問い合わせ
fbc が、ファイルの場所を見つけることができないと、
fbc は、ファイルの場所を問い合わせるために
gcc -print-file-name=<file> を呼び出します。
以下は、gcc を使って見つけられるかもしれないファイルです:
- crt1.o
- crtbegin.o
- crtend.o
- crti.o
- crtn.o
- gcrt1.o
- libgcc.a
- libsupc++.a
- libc.so
(Linux 専用)
バイナリを検出
fbc は、追加ツール (バイナリ実行ファイル) を、コンパイルとリンク・プロセスの一部として、呼び出します。
以下は、
fbc によって呼び出されるかもしれないツール(実行ファイル)のリストです。これは、ホスト・プラットホーム、目標、生成される実行ファイルかライブラリの型、に依存します:
- as
- ar
- ld
- gcc
- GoRC
- dlltool
- pexports
- cxbe
fbc は、以下の方法で、これらのツールを捜し求めます:
-
環境変数(拡張子なしのツール名と同じ名前で、全て大文字) を設定すると、環境変数は、呼び出される実行可能ファイルの、経路と名前を、明示的に示します。
-
ファイル(または、symlink)が、prefix/bin/freebasic/<target> か、「standalone」バージョンでは ./bin/<target> に存在していると、存在しているファイルを使用します。
-
Linux では、ツールが、prefix/bin/freebasic/<target>、または、「standalone」バージョンでは ./bin/<target> で見つからないと、fbc は、システムにインストールされていようと、PATH に配置されていようと、とにかくツールを呼び出そうとします。
"
<target>" は、
-target オプションで指定されたものと同じ名前を持っている目標プラットホームを示します。
参照:
ページ歴史:2016-11-07 08:15:05
日本語翻訳:WATANABE Makoto、原文著作者:JeffMarshall