/usr/bin/ld: 在 Makefile 中找不到 -lioutil
Posted
技术标签:
【中文标题】/usr/bin/ld: 在 Makefile 中找不到 -lioutil【英文标题】:/usr/bin/ld: cannot find -lioutil in Makefile 【发布时间】:2019-09-30 14:17:55 【问题描述】:我想做如下的makefile,但我收到了这个错误:
gcc frparse.o frtags.o frscan.o frinit.o frstop.o frfoot.o frio.o -L/usr/local/image/lib/sgi -lioutil -lutil -o frparse
/usr/bin/ld: 找不到 -lioutil
collect2:错误:ld 返回 1 个退出状态 Makefile:17:目标“frparse”的配方失败 make: *** [frparse] 错误 1
如果您能指导我,我将不胜感激。
IMLIB = /usr/local/image/lib/sgi
LLIBS = -lioutil -lutil
it: frparse frcheck pgrep
OBJ = frparse.o frtags.o frscan.o frinit.o frstop.o frfoot.o frio.o
frparse.o: Makefile frparse.h frio.h frproto.h frstop.h frparse.c
frinit.o: Makefile frparse.h frproto.h frinit.c
frscan.o: Makefile frio.h frstop.h frscan.c
frfoot.o: Makefile frparse.h frproto.h frstop.h frfoot.c
frtags.o: Makefile frparse.h frio.h frproto.h frstop.h frtags.c
frstop.o: Makefile frstop.h frstop.c
frio.o: Makefile frio.c
frparse: $(OBJ)
gcc $(OBJ) -L$(IMLIB) $(LLIBS) -o $@
frcheck: frcheck.o
gcc frcheck.o -L$(IMLIB) $(LLIBS) -o $@
pgrep: pgrep.o
gcc pgrep.o -L$(IMLIB) $(LLIBS) -o $@
.c.o:
# cc -c -O2 -mips2 $<
gcc -c -g $<
【问题讨论】:
你在某处有图书馆libioutil.a
吗?在哪里?请edit您的问题添加此信息。
似乎libioutil.a
(或.so
,或...)在加载程序可以找到的地方不存在。检查图书馆在哪里;忍受装载机正在寻找正确的地方。
【参考方案1】:
关于:
.c.o:
# cc -c -O2 -mips2 $<
gcc -c -g $<
注释#
也必须通过<tab>
缩进,否则配方永远不会执行第三行
另外,语法有点过时建议:
%.o:%.c
配方的第一行
但是,关于您的问题:
目录中是否真的有一个名为libioutil.so
的库文件:
/usr/local/image/lib/sgi
【讨论】:
模式规则是 GNU 主义,所以在 GNU 完成接管世界之前,后缀规则语法不会过时。就 POSIX 而言,says“包含字符 '%' 和 '"' 的目标的解释是实现定义的。”后缀规则(相对于模式规则)是实现可移植性的方法,尤其是,在基于 Autotools 的项目中,尽管 Autotools 本身是一个 GNU 项目。以上是关于/usr/bin/ld: 在 Makefile 中找不到 -lioutil的主要内容,如果未能解决你的问题,请参考以下文章
/usr/bin/ld: 无法打开输出文件 bin/genericMatching: 没有这样的文件或目录
编译错误 /usr/bin/ld: 无法打开输出文件 bin/server: 没有这样的文件或目录
在 -DVARIABLE linux 中添加 Makefile.in
/usr/bin/ld: 找不到 -ldlib /usr/bin/ld: 找不到 -lcblas /usr/bin/ld: 找不到 -llapack