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

2 篇文章 0 订阅
2 篇文章 0 订阅

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"  异常

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值