很多时候,编译的时候,现实函数未定义的引用,肯定是链接库出问题了。我遇到过几种情况:
1.路径添加失败。在makefile中,我添加了库的路径,不管是绝对路径还是相对路径,结果都失败了。这到底是什么原因导致-L失效了呢?之后,我在bashrc文件中,添加库路径,之后,编译通过。
2.这个是今天遇到的问题。我编写了一个makefile。
all : $(TARGET)
.PHONY: all
$(TARGET) : $(SRC)
g++ $(LIB) $(INCLUDE) -o $@ $^ -pthread -lm
.PHONY : clean
clean :
@rm -r $(TARGET)
编译的时候,显示函数未定义的引用。我仔细检查了一下,没有错误。经过反复验证,是命令行的问题。
正确格式:g++ $(INCLUDE) -o $@ $^ -pthread -lm $(LIB)
遇到问题,记录下来,以后研究。不管如何,问题解决了。