私はg ++を正しいバージョンのライブラリにリンクするための環境変数を設定する方法を理解しようとしています。GCCデフォルトのリンカー検索パスの前に追加する方法は? LIBRARY_PATHが機能しない
/usr/lib64に古いブーストライブラリ(これとのリンクは失敗します)と/ v/users/regel/libの新しいライブラリがあります。したがって、リンカは新しいライブラリとリンクする必要があります。
コマンド:
$ g++ test.cpp -lboost_system -L/v/users/regel/lib
リンクを正しくプログラム。しかし、これをリンカの番号1の検索ディレクトリに設定して、リンクするたびに '-L'を指定する必要はありません。
次の環境変数は、トリックを行うようには見えません。
$ LIBRARY_PATH=/v/users/regel/lib g++ test.cpp -lboost_system
/tmp/regel/cc4SmBtI.o: In function `main':
test.cpp:(.text+0x5): undefined reference to `boost::system::system_category()'
collect2: error: ld returned 1 exit status
と
$ LD_LIBRARY_PATH=/v/users/regel/lib:$LD_LIBRARY_PATH g++ test.cpp -lboost_system
/tmp/regel/ccUreBZy.o: In function `main':
test.cpp:(.text+0x5): undefined reference to `boost::system::system_category()'
collect2: error: ld returned 1 exit status
同様の科目に多数の記事や記事を読んだにも関わらず、私はまだ解決策を見つけていません。
g ++を実行する前にLD_LIBRARY_PATHを設定してエクスポートしようとしましたか(g ++コマンドラインではなく)? –
g ++を実行する前にLIBRARY_PATHとLD_LIBRARY_PATHの両方をエクスポートしようとしました。 – Regel
@FrankSchmitt、OPのやり方と同じように設定すると、それをエクスポートするのと同じ効果があります(ただし、そのコマンドとその子に限定されます)。 –