雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

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

2024-06-28 68

问题描述

最近写一个小工具,在使用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语言的函数封装不同导致,这里就不再做深入讨论。

更新于:4个月前
赞一波!3

文章评论

评论问答