前提・実現したいこと
私の環境: macOS Mojave(10.14.3)において, clang++(Apple LLVM version 10.0.0 (clang-1000.10.44.4))はオプションを指定しなくても/usr/local/libを見に行ってくれるのですが,g++((Homebrew GCC 8.3.0) 8.3.0)ではオプションで -L /usr/local/lib を指定しないと見に行ってくれないようです.
質問としては,
- 両者(clang++とg++)の挙動が異なる理由
- g++ でもデフォルトで/usr/local/libを見に行ってくれるようにする方法
の2つをお聞きしたいです.よろしくおねがいします.
以下の例では参考までに, glog[https://github.com/google/glog]をリンクしてコンパイルした結果を示します.
発生している問題・エラーメッセージ
ld: library not found for -lglog collect2: error: ld returned 1 exit status
該当のソースコード
コンパイルできる例
Terminal
1clang++ prog.cpp -lglog
Terminal
1g++ prog.cpp -lglog -L /usr/local/lib
エラーになる例
Terminal
1g++ prog.cpp -lglog
エラー文
ld: library not found for -lglog collect2: error: ld returned 1 exit status
補足情報(FW/ツールのバージョンなど)
OS: macOS Mojave(10.14.3)
clang++(version): Apple LLVM version 10.0.0 (clang-1000.10.44.4)
g++(version): (Homebrew GCC 8.3.0) 8.3.0
追記(2019/03/14 10:44)
コメントの内容や,ネットの検索情報を元にして,試したことを追記します.
解決法1(失敗)
export LD_LIBRARY_PATH=/usr/local/lib
export DYLD_LIBRARY_PATH=/usr/local/lib
は試してみたのですが,効果はありませんでした.
解決法2(失敗)
/etc/ld.so.conf
を作成し,内容を
/usr/local/lib
を書き込みましたが,こちらも効果は観察されませんでした.
回答1件
あなたの回答
tips
プレビュー