This question already has answers here:
Closed 5 years ago.
Undefined reference to `initscr' Ncurses
(4个答案)
我注意到我的程序没有建立在另一个发行版上。我对makefile CFLAGS有-lncurses,但得到了“对‘initscr’的未定义引用”错误。
以下是生成文件:
下面是cc命令:
如果我移动-最后一次诅咒,它会很好地构建:
那我该怎么解决呢?如何在makefile上最后移动-lncurses指令?
(4个答案)
我注意到我的程序没有建立在另一个发行版上。我对makefile CFLAGS有-lncurses,但得到了“对‘initscr’的未定义引用”错误。
以下是生成文件:
CFLAGS+=-std=c99 -pedantic -Wall -lncurses
BIN=progname
all: $(BIN)
install: all
mkdir -p $(DESTDIR)/usr/bin
install -m 755 $(BIN) $(DESTDIR)/usr/bin/
uninstall:
rm -f $(DESTDIR)/usr/bin/$(BIN)
clean:
rm -f $(BIN)
下面是cc命令:
cc -std=c99 -pedantic -Wall -lncurses nbwmon.c -o nbwmon
如果我移动-最后一次诅咒,它会很好地构建:
cc -std=c99 -pedantic -Wall nbwmon.c -o nbwmon -lncurses
那我该怎么解决呢?如何在makefile上最后移动-lncurses指令?
最佳答案
这是因为链接器以一种相反的顺序查找依赖项,所以如果对象文件O依赖于库L,那么库L必须在命令行中位于对象文件O之后。
关于c - 对带有-inccurses的`initscr'的 undefined reference ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25470412/
10-12 04:51