makefile 编译出现 undefined reference to `XXXX' 异常

gcc 编译或 makefile 编译项目,从 .c .h .cpp .hpp 文件到 可执行成程序 ,主要经过以下四个步骤:

1、预处理 :宏替换,删除注释和多余的空白符,条件编译

2、编译 : 检测是否有语法错误,生成汇编

3、汇编 :生成机器可识别代码,将编译生活曾生成的 .s 文件转成 .o 二进制目标代码

4、链接 :生成可执行文件或库文件

 

实际参与项目时,主要是通过makefile 编译项目。

经过makefile 编译后,出现大量 undefined reference to `XXXX' 的异常提示信息。

主要原因是链接时找不到对应的函数。

导致这个错误的原因可能是加载静态或动态库时的先后顺序弄反了,原来应该前置的 libAAA.a 静态库却将其置于 libCCC.a 之后。

这时链接过程,需要先链接该libAAA.a 的函数时,链接不到libAAA.a 的函数,而导致 undefined reference to  "XXXXX"  异常

你可能感兴趣的:(linux,C/C++,makefile)