将库搜索路径添加到clang

21

我该如何将/usr/local/lib添加到我的clang库搜索路径中?

当我使用clang -Xlinker -v列出我的库搜索路径时,看到的内容如下:

输入图像描述

3个回答

22

将它添加为环境变量可以吗?

这应该有效:

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/lib

需要注意的是,应该使用 LIBRARY_PATH 而不是 LD_LIBRARY_PATH

另一方面,如果上述方法对您无效,您应该使用以下标志进行编译:

-L/usr/local/lib

这应该足够了。

编辑:顺便说一下,我不知道为什么你在使用反斜杠而不是正斜杠...这需要解释。始终使用正斜杠。即使在Windows上也是如此。


谢谢指出反斜杠问题,已更正问题。我将LIBRARY_PATH添加到~/.bash_profile中,但是clang -Xlinker -v仍然没有列出并且找不到。我能在CMake中加入-L/usr/local/lib标志吗? - dr_rk
@dr_rk 是的,你可以使用 target_link_libraries(MyExec -L/usr/local/lib) 来实现。在你的cmake文件中,将 MyExec 替换为你想要链接的对象名称。此外,请注意,将东西添加到bashrc并不总是正确的方法。只需在你的shell中执行该命令即可。 - The Quantum Physicist
谢谢!我已经成功地使用您的建议,通过包含 -L 标志来解决了问题。我将 -L/usr/local/lib 添加到了 CMAKE_EXE_LINKER_FLAGS 变量中。 - dr_rk

7
通过使用-L标志,您可以将额外的路径添加到库路径中。

-4

注意,是大写字母I(i),不是大写字母L。例如:

clang -fsanitize=unsigned-integer-overflow,signed-integer-overflow,shift,pointer-overflow -Wall -Wno-format-extra-args -g utilities.cpp -I/Users/myName/Git/myProj/src/libs "$@" && ./a.out


2
I 是包含文件搜索路径,L 是库文件搜索路径。 - HolyBlackCat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接