侧边栏壁纸
  • 累计撰写 185 篇文章
  • 累计创建 77 个标签
  • 累计收到 17 条评论

目 录CONTENT

文章目录

gcc或g++编译链接时报undefined reference to “xxx”

码峰
2023-03-15 / 0 评论 / 0 点赞 / 819 阅读 / 297 字 / 正在检测是否收录...
广告 广告

问题描述

最近写一个小工具,在使用gcc或g++命令编译链接时,总是报“undefined reference to xxx"的错误,确认了一边找不到的符号,在链接的一个动态库中是存在的,折腾了好久,找到了问题的原因,记录备忘,供大家参考。

解决方法

一般原因

一般出现“undefined reference to xxx”,是由于链接时,缺少xxx函数实现的目标文件(.o),或动态库、静态库,这种情况,只需要在链接的命令中加入xxx函数实现的目标文件、动态库或静态库就可以解决了。

C++调用C API

如果缺少的xxx函数是在一个.c源文件中实现,或者在一个导出标准C api的动态库中实现,在C++中调用这个函数时,需要在该函数申明的签名加上extern “C” 才能链接成功。这主要原因是C++与C语言的函数封装不同导致,这里就不再做深入讨论。

0
广告 广告

评论区