找不到 -l/usr/local/lib

用vscode编译C语言,链接库文件却提示找不到文件夹
这是问题:
/usr/bin/ld: 找不到 -l/usr/local/lib: 没有那个文件或目录
在task.json中添加的路径:
"-l/usr/local/lib",

参考GPT和自己的思路:

首先,看到您的问题中提到的错误提示信息,这表示 ld (链接器) 找不到所需的库文件 /usr/local/lib。因此,您需要检查您要链接的库文件是否实际存在于该目录中,如果不存在,可以尝试重新安装该库文件。

另外,您的 task.json 文件中添加的路径看起来似乎有错。一般来说,library 的命名格式应该是 -l,其中 是您要链接的库文件名,不包括路径和文件扩展名(例如,如果您要链接名为 libfoo.so 的库文件,则命令应该是 -lfoo)。因此,您需要将 task.json 中的路径修改为正确的库文件名。

最后,您可能还需要确保您的库文件路径已添加到编译器的链接路径中,可以在编译选项中添加 -L /usr/local/lib 以将该目录添加到链接路径中。

参考GPT和自己的思路:

首先,这个错误提示告诉我们链接器在链接过程中找不到名为"-l/usr/local/lib"的动态库或静态库文件。这很可能是因为指定的路径不正确或者目标文件不在该路径下。

解决方法可以尝试以下两种方式:

  1. 确认库文件路径是否正确

检查一下你的链接库文件路径是否正确,尤其是"-L"选项。在这种情况下,你可能应该使用"-L/usr/local/lib"选项来指定库文件所在的正确路径。

  1. 查找库文件是否存在

检查一下你的库文件是否真的在指定的路径中存在。可以通过运行"ls /usr/local/lib"来查看该文件夹下是否存在需要链接的库文件。

希望以上解决方法能够帮你解决这个问题。

-l和/usr之间要加空格

该回答引用GPTᴼᴾᴱᴺᴬᴵ
在编译过程中,选项 -l 后面应该接库文件的名字,而不是库文件所在的路径。因此,如果你要链接 /usr/local/lib 下的某个库文件,可以按照以下方式修改编译选项:

"-L/usr/local/lib",
"-l<库文件名>"

其中 -L 表示库文件所在的路径,<库文件名> 替换成实际的库文件名。注意,库文件名一般是以 lib 开头的,例如 libm.so、libpthread.so 等。
·
所以,你需要将 -l/usr/local/lib 修改为 -L/usr/local/lib。