XL C/C++ は、次の順序でライブラリーをリンクします。
次の表は、"Hello World" 型プログラムのリンク順序をより詳細に示しています。
示されているディレクトリー・パスは、特定のコンパイラー構成によっては 異なる場合があります。ユーザーの特定のコンパイラー構成に固有の情報については、 システムにインストールされているデフォルトの構成ファイルを参照してください。 一般的なコンパイラーのデフォルト構成ファイルについては、構成ファイルでのコンパイラー・オプションの指定を参照してください。
ld コマンド・コンポーネント | オプション | ld 引数 | xldriver 属性 |
---|---|---|---|
ld |
gcc, g++ | ld | ld / ld_64 |
xlc、xlC | ld | ||
例外処理パーソナリティー・ハンドラーを使用可能にする | all | --eh-frame-hdr | xldriver によってコマンド行に追加されるオプション |
.ident ディレクティブを生成する | -Qn | ||
これ以外の場合 | -Qy | xldriver によってコマンド行に追加されるオプション | |
出力の種類 | -shared -static | -shared | xldriver によってコマンド行に追加されるオプション |
-shared | -shared | ||
-static | -static | ||
これ以外の場合 | |||
arch | 32 ビット | -melf32ppclinux | xldriver によってコマンド行に追加されるオプション |
64 ビット | -mel64ppc | ||
動的ローダー | 32 ビット !-shared !-static | -dynamic-linker /lib/ld.so.1 | dynlib |
64 ビット !-shared !-static | -dynamic-linker /lib64/ld64.so.1 | dynlib64 | |
call to main( ) | 32 ビット !-shared | /usr/libcrt1.o | crt |
64 ビット !-shared | /usr/lib64/crt1.o | crt_64 | |
32 ビット !-shared -p | /usr/lib/gcrt1.o | mcrt | |
32 ビット !-shared -pg | gcrt | ||
64 ビット !-shared -p | /usr/lib64/gcrt1.o | mcrt_64 | |
64 ビット !-shared -pg | gcrt_64 | ||
init/fini 関数 prolog | 32 ビットすべて | /usr/lib/crti.o | crtp |
64 ビットすべて | /usr/lib64/crti.o | crtp_64 | |
init/fini レジスター | -shared -static | crtbeginT.o | crtbegin_t / crtbegin_t_64 |
-static | |||
-shared | crtbeginS.o | crtbegin_s / crtbegin_s_64 | |
これ以外の場合 | crtbegin.o | crtbegin / crtbegin_64 | |
ライブラリー検索パス | 32 ビット gcc | -L<gcc>/gcc-lib | gcc_libdirs |
64 ビット gcc | -L<gcc64>/gcc-lib | gcc_libdirs_64 | |
32 ビット g++ | -L<gcc>/gcc-lib/powerpc-suse-linux-gnu/3.2
-L<gcc>/gcc-lib |
gcc_libdirs | |
64 ビット g++ | -Lgcc64/gcc-lib/powerpc64-linux-gnu/3.2
-Lgcc64/gcc-lib |
gcc_libdirs_64 | |
ユーザー .o ファイルおよびライブラリー | all | ||
vacpp ライブラリー | all | libraries2 / libraries2_64 | |
C++ 標準ライブラリー | g++ | -lstdc++ -lm | gcc_cpp_libs / gcc_cpp_libs_64 |
C 標準ライブラリー | gcc
-static -static -shared-libgcc -shared -static-libgcc |
-lgcc
-lgcc_eh -lc -lgcc -lgcc_eh |
gcc_static_libs / gcc_static_libs_64 |
g++
-shared-libgcc |
-lgcc_s
-lgcc -lc -lgcc_s -lgcc |
gcc_shared_libs / gcc_shared_libs_64 | |
all | gcc_libs / gcc_libs_64 | ||
保管/復元ルーチン | all | crtsavres.o | crtsavres / crtsavres_64 |
init/fini run | crtend.o | crtend / crtend_64 | |
-shared | crtendS.o | crtend_s / crtend_s_64 | |
init/fini 関数 epilog | all | /usr/lib/crtn.o | crte |
/usr/lib64/crtn.o | crte_64 |