站长资源操作系统

linux下链接库失败的原因分析

整理:jimmy2024/11/20浏览2
简介很多时候,编译的时候,现实函数未定义的引用,肯定是链接库出问题了。我遇到过几种情况:1.路径添加失败。在makefile中,我添加了库的路径,不管是绝对路径还是相对路径,结果都失败了。这到底是什么原因导致-L失效了呢?之后,我在bashrc文件中,添加库路径,之后,编译通过。2.这个是今天遇到的

很多时候,编译的时候,现实函数未定义的引用,肯定是链接库出问题了。我遇到过几种情况:

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)

遇到问题,记录下来,以后研究。不管如何,问题解决了。