大家好。问题是这样的。我正在使用 makefile 来制作应用程序。在其中我同时指定了 LDFLAGS 和 LDLIBS(以及其他,但那两个是相关的)并指向现有文件夹中正确的 *.a 文件。在尝试制作应用程序时,我从 LD 收到以下错误:
0706-006 Cannot find or open library file: -l test001 ld:open(): No such file or directory
我尝试链接的项目中的每个库都会出现这些情况。 makefile 中它出现的行:
appname: appname.o
$(CC) -bnoquiet appname.o -o $@ $(LDFLAGS) $(LDLIBS)
在哪里
LDFLAGS=-L$(LIBDIR)/
LDLIBS=-ltest001 -ltest002 -ltest003 -ltest004
如有任何帮助,我们将不胜感激。提前致谢。
最佳答案
作为临时解决方案,我决定将这些库文件作为目标文件传递给链接器。像这样:
LIBS=$(LIBDIR)/test001.a $(LIBDIR)/test002.a $(LIBDIR)/test003.a $(LIBDIR)/test004.a
...
$(CC) -bnoquiet appname.o -o $@ $(LIBS)
我认为这不是最好的方法。尽管在这种情况下似乎任何解决方案都会使记录的方式(使用 -L 和 -l 键)变得无用。真可惜。
关于c - 现有文件的 LD 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23732207/