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

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

本文关键字:找不到 local usr lib      更新时间:2023-10-16

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

#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很好),我不想在那里"硬编码"库路径,以便它是可移植的。我之前在另一台Mac上试过这个功能,效果很好,所以我不确定是怎么回事。有什么建议吗?

找到一个可能的解决方案:

export LIBRARY_PATH=/usr/local/lib

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

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