|
次のページ
前のページ
目次へ
6. メインライブラリでないlibcを使ったコンパイルプログラムのコンパイルの際、メインライブラリ以外のライブラリを使ということも あるでしょう。このセクションでは、このような場合にどうしたら良いのか を、前の2節のディレクトリとインストール名を使って説明します。実際に 使用するときは、各自の設定に合わせて名前を読み替えて下さい。
6.1 メインでないlibcを使う場合の注意
システムブートプロセスが使用するプログラムをコンパイルする時は、
注意が必要です。
プログラムが動的にリンクされていて、かつルートでないパーティションが
マウントされる前に使用されるプログラムである場合には、リンクされる
全てのライブラリがルートパーティションになくてはなりません。
前節のメインライブラリとしてglibcをインストールする場合
の説明に従えば、古いlibcはルートパーティション上の
6.2 テスト用glibcを使ったコンパイルテスト用にインストールされたglibcを使ってコンパイルするときは、glibc のincludeを指すようにincludeパスを再設定する必要があります。"-nostdinc" 指定によって、通常のパスを無効にし、"-I/usr/i486-linuxglibc2/include" を指定することで、glibc includeを指定できます。gcc includeも指定する 指定する必要があります。これは/usr/lib/gcc-lib/i486-linuxglibc2/ 2.7.2.2/include にあります。(テスト用ライブラリがi486-linuxglibc2で gccのバージョンが2.7.2.2の場合) テスト用glibcへプログラムをリンクする場合は、gccの設定を指定する必要 があります。これには、"-b i486-linuxglibc2"オプションを使います。 多くのプログラムでは、makefileの
configureスクリプトを使っている場合、configureを実行する前に
$CFLAGS と$LDFLAGS シェル変数を定義します
(csh/tcshの場合env/setenv,sh/bash等ではset/exportを使用)。
これによって生成されるmakefileは適切な$CFLAGS と
$LDFLAGS を含んでいるはずです。
ただし、全てのスクリプトがこれらの変数を確認するわけではないので、
configureを実行した後、makefileを確認し、必要に応じて編集してください。
コンパイルしようとしているプログラムが、gccのみを使用しているときは (cppやbinutilsディレクトリを直接使用しなければ)、下記のスクリプトを使えば 毎回全オプションを指定せずに済みます。
You can then use this script instead of "gcc" when compiling.
gccの代わりにこのスクリプトを使用してください。
6.3 glibcがメインライブラリのときのlibc5を使ったコンパイルglibcをメインライブラリとしてインストールしてあるときに、古いライブラリを 使ってプログラムをコンパイルするには、古いライブラリ用にパスを再設定 する必要があります。これには、"-nostdinc"オプションを指定して 通常のパスを無効にし、"-I/usr/i486-linuxlibc5"を使ってglibc(*) のincludeディレクトリを指定します。 また、"-I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include" を指定してgcc特有のincludeファイルディレクトリを指定します。 なお、パス名は各自の設定やgccバージョンに合わせて調整してください。 (*訳注) libc5の間違いと思われます。 古いlibcにプログラムをリンクするには、gccの設定を指定する必要があり ます。これは、オプション"-b i486-linuxlibc5"を指定すればOKです。 多くのプログラムでは。makefile中で
configureスクリプトを使っているときは、configure実行前に、シェル変数
$CFLAGS と$LDFLAGS を定義します
(csh/tcshではenv/setenv, sh/bash等ではset/exportを使用)。
自動生成されたmakefileには、適切に$CFLAGS と
$LDFLAGS が記述されているはずですが、
全てのconfigureスクリプトがこれを行ってくれるわけではないので、
configure実行後makefileを確認し、必要に応じて編集してください。
もし、コンパイルしようとしているプログラムがgccのみを呼び出している ならば(cppやbinutilsを直接必要としていないならば)、下記のスクリプトを 使えば、毎回オプションを指定しなくてもすみます。
You can then use this script instead of "gcc" when compiling.
コンパイル時に"gcc"の代わりにこれを使えば良いわけです。
次のページ 前のページ 目次へ |
[ |