g++ 在 /usr/local/lib 中找不到库
Posted
技术标签:
【中文标题】g++ 在 /usr/local/lib 中找不到库【英文标题】:g++ not finding library in /usr/local/lib 【发布时间】:2016-07-03 04:06:05 【问题描述】:我正在尝试让 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 很好),我不想在其中“硬编码”库路径以便它是可移植的。我之前在另一台 Mac 上尝试过,效果很好,所以我不确定发生了什么。有关解决此问题的任何建议?
【问题讨论】:
【参考方案1】:找到一个潜在的解决方案:
export LIBRARY_PATH=/usr/local/lib
不确定这是否是 最好的 解决方案,但目前可以使用。我可以把它本地放在我的 .bashrc 中。
更新:在 macOS 上,如果您运行 xcode-select --install
,它应该可以解决这些问题。
【讨论】:
以上是关于g++ 在 /usr/local/lib 中找不到库的主要内容,如果未能解决你的问题,请参考以下文章
无法编译第一个 opencv 程序,'/usr/bin/ld: 找不到 -lcv'
带有 -L/usr/local/lib 的巨大可执行文件大小
npm ERR! Error: EACCES: permission denied, access ‘/usr/local/lib/node_modules‘