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
它应该可以解决这些问题。
我试图让 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
它应该可以解决这些问题。