gpt4 book ai didi

c - Makefile 链接器错误

转载 作者:太空狗 更新时间:2023-10-29 16:01:45 25 4
gpt4 key购买 nike

我有一个问题让我很头疼,假定 command-L 在 Makefile 的当前目录中搜索库,但它对我不起作用,例如我的 Makefile 中有以下命令:

...
LDLIBS = -L/libs -lmatrix

main: main.o operations.o display.o
$(CC) $(LDLIBS) $^ -o $@
...

当我尝试编译它时,字面意思是:

gcc  -L/libs -lmatrix main.o operations.o display.o -o main
/usr/bin/ld: cannot find -lmatrix
collect2: ld returned 1 exit status
make: *** [main] Error 1

但是当我简单地将“-L/libs”更改为“-L$(PWD)/libs”时,它可以完美编译并且我的程序运行良好...

但是使用“-L$(PWD)”我得到另一个问题,如果任何目录的名称有一个空格它又不起作用,实际上我不知道这个问题是否无法解决(使用$(PWD ) 或不),但我仍然怀疑为什么没有 $(PWD) 它就不能工作,因为显然(在互联网上看到 很多 示例)使用 -L,$( PWD) 不需要。

最佳答案

你错了,不需要它。路径 /libs 表示文件系统根目录下的 libs 目录。就像/bin不代表“我当前目录下的bin目录”,所以/libs不代表当前目录下的libs目录。

如果你想查看当前目录下的libs,只需使用-Llibs,或者如果你想更具体一些,-L./libs (目录.是当前目录,所以cd.会切换到当前目录,就像cd..会切换到父目录)。

关于c - Makefile 链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22918488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com