基本を再チェック〜gcc〜

YAMAMORI Takenori ●yamamori

■コラム■ Solarisの場合のgccのオプション

Solarisの場合,本文の実行例 のままでは,コンパイルが通ったとしても, 実行時に共有ライブラリが見つからず,実行できないでしょう. あるいは,間接的にリンクしているlibSMほかのライブラリのため, コンパイル(リンク)も通らないかも知れません.

Linuxなどでは共有ライブラリの実行時のPATHを, ldconfigを用いて解決していますが, Solarisにはldconfigはなく,/usr/X11R6/libなどの共有ライブラリのPATHを それぞれの実行ファイル(この場合はhello_x11)に埋め込む必要があります.

共有ライブラリのPATHを埋め込むためのオプションは「-R」で, 「-R」には通常「-L」で指定したディレクトリと同じものを指定します. この場合は結局,次のようなオプションになります.

$ gcc -O2 -I/usr/X11R6/include -L/usr/X11R6/lib -R/usr/X11R6/lib \
    hello_x11.c  -lXaw -lXmu -lXt -lX11 -o hello_x11

なお,上記コマンドは/usr/X11R6以下に自分でX11R6.4またはX11R6.5.1などを インストールしている場合の例です. Solarisに付属のOpenWindowsを用いる場合は,/usr/X11R6をすべて/usr/openwinに 置き換えて下さい.

このように,gccを直接起動する方法でのXのプログラムのコンパイルは, OSやXの環境によってgccに指定するべきオプションが変わり,かなり繁雑です. これらついてはいずれImakefileを用いることにより解決されることになります.


To『基本を再チェック〜gcc〜』[index]


このページは、技術評論社 Software Design 2001年2月号、『プログラムのコンパイルとリンク』の原稿を元に、Web 用に再構成したものです。
To 謎の処理系 SunOS 4.1.4 with Linux/FreeBSD[Home]
yamamori