c – Makefile链接器错误
发布时间:2020-12-16 09:51:35 所属栏目:百科 来源:网络整理
导读:我有一个让我头疼的问题,假设命令-L搜索Makefile的当前目录中的库,但它对我不起作用,例如我在Makefile中有以下命令: ...LDLIBS = -L/libs -lmatrixmain: main.o operations.o display.o $(CC) $(LDLIBS) $^ -o $@... 当我尝试编译它时,字面上说: gcc -L/li
我有一个让我头疼的问题,假设命令-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 $(PWD)/ libs”更改“-L / libs”时,它编译得很完美,我的程序运行正常…… 但是使用“-L $(PWD)”我得到了另一个问题,如果任何目录的名称都有空格它不再起作用,实际上我不知道这个问题是不可修复的(使用$(PWD)或不使用),但我仍然怀疑为什么没有$(PWD)它不起作用,因为显然(在互联网上看到很多例子)使用-L,不应该需要$(PWD). 解决方法
你错了,不需要它. path / libs表示文件系统根目录下的libs目录.就像/ bin并不意味着“我当前目录下的bin目录”,所以/ libs并不意味着当前目录下的libs目录.
如果你想查看当前目录中的libs,只需使用-Llibs,或者如果你想要更具体,-L./ libs(目录.是当前目录,所以cd.改变到当前目录,就像cd ..更改父目录). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |