Build ld:找不到库

Build ld:找不到库,build,linker,ld,Build,Linker,Ld,我正在尝试构建一个依赖于SDL2库的项目。我已使用自制软件安装并链接了它: > ls /usr/local/lib | grep SDL2 libSDL2-2.0.0.dylib libSDL2.a libSDL2.dylib libSDL2_test.a libSDL2main.a 我还将/usr/local/lib添加到我的/etc/path和~/.bash\u配置文件中: > cat /etc/paths /usr/local/lib /usr/local/bin /usr/

我正在尝试构建一个依赖于SDL2库的项目。我已使用自制软件安装并链接了它:

> ls /usr/local/lib | grep SDL2
libSDL2-2.0.0.dylib
libSDL2.a
libSDL2.dylib
libSDL2_test.a
libSDL2main.a
我还将
/usr/local/lib
添加到我的
/etc/path
~/.bash\u配置文件中

> cat /etc/paths
/usr/local/lib
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
但是,当我尝试构建项目时,仍然会出现以下错误:

error: linking with `cc` failed: exit code: 1
note: cc '-m64' '-L' (...) '-lSDL2'
ld: library not found for -lSDL2
clang: error: linker command failed with exit code 1 (use -v to see invocation)

为什么会发生这种情况?我如何修复它?

/etc/path
用于可执行文件,而不是共享库。与
.bash\u profile
中设置的
$PATH
环境变量相同。这些是在终端中键入命令时搜索程序的路径


您需要做的是更改链接器链接路径。有关如何设置链接路径的详细信息,请参阅的答案。

我通过将
/usr/local/lib
添加到我的
$LIBRARY\u路径中解决了此问题:

对于bash,在
~/.bash\u配置文件中:

export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/lib"
对于鱼壳,在
~/.config/fish/config.fish
中:

set -g -x LIBRARY_PATH $LIBRARY_PATH /usr/local/lib

链接问题的答案建议将呼叫更改为链接,但我自己不呼叫;相反,它由用于编译项目的其他工具自动调用。我可以全局添加库路径吗?