[解決済み] LD_LIBRARY_PATH と LIBRARY_PATH の比較
質問
簡単なC++プログラムを作っているのですが、開発・テストのために、システム提供の共有ライブラリを一時的に最新版に置き換えたいのですが、どうすればいいですか?
LD_LIBRARY_PATH 変数を設定してみましたが、リンカー (ld) は次のように失敗しました。
/usr/bin/ld: -lyaml-cppが見つかりません。
ldのmanページによると、私はそれが動作することを期待した。
リンカは以下の検索を使用します。 パスで必要な共有 ライブラリ: ... ネイティブリンカーの場合。 環境変数 "LD_LIBRARY_PATH"...
その後、LIBRARY_PATHを設定してみたところ、うまくいきました。
GCCのマニュアルによると
の値は LIBRARY_PATH はコロンで区切られたリストです。 というように、ディレクトリを指定します。このとき ネイティブコンパイラとして設定されたGCCは は、このように指定されたディレクトリを試行します。 特殊リンカー を使っても見つからない場合は gcc_exec_prefix. GCC を使ってリンクする は、これらのディレクトリを使用します。 のために通常のライブラリを検索します。 l オプション(ただし、ディレクトリ Lで指定されたものが優先されます)。
(GCC)マニュアルにあるように、GCCでリンクするので、LIBRARY_PATHが機能します。
でも...
- gccでリンクしているので、なぜldが が呼び出されます。 が示唆しているのでしょうか?
- 何のために 2つの変数が同じ役割を果たす の目的は?他に の違いは何ですか?
解決方法は?
LIBRARY_PATH
は、コンパイル前に gcc が、プログラムにリンクする必要のある静的および共有ライブラリを含むディレクトリを検索するために使用します。
LD_LIBRARY_PATH
を含むディレクトリを検索するために使用されます。
共有
のライブラリが正常にコンパイル・リンクされたことを示します。
EDIT
下記で指摘されているように、ライブラリは静的または共有にすることができます。もし静的ライブラリであれば、そのコードはプログラムにコピーされるので、プログラムがコンパイルされリンクされた後、ライブラリを探す必要はありません。共有ライブラリの場合は、プログラムに動的にリンクする必要があり、その際に
LD_LIBRARY_PATH
が登場します。
関連
-
[解決済み】ファイル形式が認識されない。GCCを使用してリンカスクリプトとして扱う
-
[解決済み] gcc エラー : `itoa' への未定義の参照
-
[解決済み] g++ 出力: ファイルが認識されません。ファイル形式が認識されない
-
[解決済み] gcc エラー:間違った ELF クラスです。ELFCLASS64
-
[解決済み] .ascizと.stringアセンブラディレクティブの違いは何ですか?
-
[解決済み] 自作のmakefileを作成する【エラー255】。
-
[解決済み] LD_LIBRARY_PATH と LIBRARY_PATH の比較
-
[解決済み] gccやldで位置非依存の実行ファイルを作成するための-fPIEオプションとは何ですか?
-
[解決済み] LLVMとは何ですか?
-
[解決済み】-Wl,-rpath -Wlがわかりません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】警告:イニシャライザーの周りに中括弧がないことを修復する方法?
-
[解決済み] 自作のmakefileを作成する【エラー255】。
-
[解決済み] gccのオプションにある-m32、-m64、nothingの違いは何ですか?
-
configure: エラー: $PATH に受け入れ可能な C コンパイラがありません。
-
gccコンパイルオプション -fpermissive
-
[解決済み] OSX 10.9にXcodeをインストール - clang: エラー: 入力ファイルがありません。
-
[解決済み] gcc/g++とcc1/cc1plusの違いは何ですか?
-
[解決済み] どのフラグが -march=native で有効になるかを確認する方法は?
-
[解決済み] brew install gccは時間がかかりすぎる
-
[解決済み] ライブラリを静的にリンクするようにgccに直接指示する