くだらない質問はここに書き込め!なんでもアリ23
■ このスレッドは過去ログ倉庫に格納されています
0640633
NGNGをそのまま使ってます。このOSではコンパイラはgcc 2.95.4(相当)とのことで、
リンカは GNU ld 2.12.1(相当) のようです(ともに--versionで確認)。
>>638
その3パターンはすべて同じ意味で、「静的リンクする」ということですよ
ね。私の環境ではすべて「statically linked」(fileコマンド)、
「not a dynamic executable」(lddコマンド)と表示されました。中身もすべて同
じでした。
とりあえず、私の頭の中を整理すると、
・-rpath-linkの意味が分からない
・分からないのはld(1)の記述の中の、>>634で書いた部分。
・すなわち、「共有ライブラリが別の共有ライブラリを必要としている状
態で、非共有、再配置不可能なリンクを行う」ってどういうこと??
・(コマンドライン上での)どういった操作でそういうことが再現できる
のかを教えてもらえればそこから類推できるかも?
ということです
おまけ:
・リンカは「-rpath」の代わりに「--rpath」を使ってもよい。"rpath"の前に
'-'(ハイフン)を2つ付けても同じ意味になる。マニュアルには書いてない
けど。結構有名なの?
・-rpathを複数回指定する代わりに、それらのパスを:でつなげれば-rpathは
1回指定するだけでよい。すなわち、「-rpath /path/a -rpath /lib/x」は
「-rpath /path/a:/lib/x」と同じ意味になる、ということ。-rpathで指定した
パスは実行形式に埋め込まれるから、それをその実行形式ファイルから
探してみた(% strings /some/executable | grep /lib/x)ときに分かった。
・でも「-rpath "/path/a /lib/x"」のようにスペース(0x20)で区切ってはダメ
■ このスレッドは過去ログ倉庫に格納されています