[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 05/10 00:46 / Filesize : 24 KB / Number-of Response : 103
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

UNIXプログラミング質問すれ Part9



55 名前:デフォルトの名無しさん [2008/04/13(日) 11:16:21 ]
UNIX プログラミングからは外れているかもしれませんが,
一番近そうな質問スレッドなので質問させていただきます.

共有ライブラリの動的リンクについての質問です,

CentOS 5.1 でシステム標準の GCC 4.1.1 とは別に,GCC 4.2.3, 4.3.0 を /usr/local 以下にインストールしています.
gcc-4.2.3 のライブラリは /usr/local/lib/gcc-4.2.3 に,
gcc-4.3.0 のライブラリは /usr/local/lib/gcc-4.3.0 にインストールしています.

以下のように GCC 4.3.0 でライブラリを指定してコンパイルします.
gcc43 -Wall -O2 -c -fopenmp omp-test.c -o omp-test.o
gcc43 -Wall -O2 -lgomp omp-test.o -o omp-test.parallel
出来上がった実行バイナリ omp-test.parallel を ldd すると,
     linux-gate.so.1 => (0x00110000)
     libgomp.so.1 => /usr/local/lib/gcc-4.2.3/libgomp.so.1 (0x00111000)
     libc.so.6 => /lib/libc.so.6 (0x00565000)
     librt.so.1 => /lib/librt.so.1 (0x00df3000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00702000)
     /lib/ld-linux.so.2 (0x00546000)
と,GCC 4.2.3 のライブラリ依存となってしまいます.
同名のライブラリがある場合,
ldconfig で認識されている共有ライブラリで,一番上にあるものが使用されているようです.
コンパイル時に GCC のバージョンに合わせてライブラリを指定して,
実行時に GCC のバージョンに合ったライブラリをロードする方法をご存知の方はいませんか?

$ ldconfig -p|grep libgomp
     libgomp.so.1 (libc6) => /usr/local/lib/gcc-4.2.3/libgomp.so.1
     libgomp.so.1 (libc6) => /usr/local/lib/gcc-4.3.0/libgomp.so.1
     libgomp.so.1 (libc6) => /usr/lib/libgomp.so.1
     libgomp.so (libc6) => /usr/local/lib/gcc-4.2.3/libgomp.so
     libgomp.so (libc6) => /usr/local/lib/gcc-4.3.0/libgomp.so






[ 続きを読む ] / [ 携帯版 ]

全部読む 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<24KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef