g++ 在 /usr/local/lib 中找不到库

g++ not finding library in /usr/local/lib

我试图让 g++ 自行找到 glog (OS X 10.11.5)。我安装了 glog(尝试使用 github pull 中的 cmake 以及 brew install - 两种情况下的结果相同)。然后我尝试编译这个文件:

#include <glog/logging.h>

int main(int argc, char** argv) {
  int* x = nullptr;
  CHECK_NOTNULL(x);
  return 0;
}

来自 运行 g++ -lglog -I/usr/local/include test.cpp

失败并出现以下错误:

ld: library not found for -lglog
clang: error: linker command failed with exit code 1 (use -v to see invocation)

然而,当我用 g++ -L/usr/local/lib -lglog -I/usr/local/include test.cpp 编译时它工作正常。

我尝试将 /usr/local/lib 添加到我的 LD_LIBRARY_PATH 中,但没有成功。

通常情况下,我不介意,但我使用的是 CMake(它发现 glog 很好),我不想 "hardcode" 库路径在那里以便它是可移植的。我之前在另一个 Mac 上试过这个并且工作正常,所以我不确定发生了什么。有什么解决这个问题的建议吗?

找到一个潜在的解决方案:

export LIBRARY_PATH=/usr/local/lib

不确定这是否是最佳 解决方案,但目前可以使用。我可以把它放在我的本地 .bashrc 中。

更新: 在 macOS 上,如果你 运行 xcode-select --install 它应该可以解决这些问题。