Makefile添加-lm无效:编译coreutils-5.0遇floor未定义引用错误
解决coreutils-5.0编译时
undefined reference to 'floor'的问题 这个错误是链接阶段的问题,不是编译阶段的问题。你把-lm放在CFLAGS里没用——CFLAGS是给编译器的编译/预处理选项,而链接数学库的参数得传给链接器才行。
试试这几个方法:
- 别改
CFLAGS,去修改Makefile里的LDLIBS或者LIBS变量,比如设置LDLIBS = -lm,之后重新编译。 - 要是不想改Makefile,直接执行make时覆盖变量:
make LDLIBS=-lm - 要是上面的方法还不行,检查下Makefile里的链接规则,确保
-lm放在所有用到floor函数的目标文件后面——链接器处理库的顺序很关键,库得放在引用它的文件之后。
内容的提问来源于stack exchange,提问作者Zoro
相关产品推荐
相关产品推荐

