问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

链接时出现一个undefined reference to 问题,实在不懂为什么

发布网友 发布时间:2022-04-22 16:44

我来回答

3个回答

热心网友 时间:2023-11-12 18:35

“undefined reference to”的意思是,该函数未定义。
如果使用的是gcc,有以下检查方案:
如果提示未定义的函数是某个库的函数。检查库时候已经安装,并在编译命令中采用-l和-L参数导入库。
如果提示未定义的函数是程序中的函数。检查是否在头文件中声明,是否在编译中有对应的obj文件,检查函数的或者变量的名字是否正确,是否是因为前后拼写不一致造成的。
如果提示未定义的函数是程序中的函数,还有一种很隐蔽的可能:检查改函数的代码的上下文是否有#ifdef或者#ifndef等预编译信息,这也很有可能导致相关代码没有被编译而出现“undefined reference to”提示。
Linux下编译程序时,经常会遇到“undefined reference to XXX” 报错,

这里总结一些可能的原因和解决方案,给需要的朋友:

说道undefined reference error,先提一下Linux gcc链接规则:

链接的时候查找顺序是:

-L 指定的路径, 从左到右依次查找
由 环境变量 LIBRARY_PATH 指定的路径,使用":"分割从左到右依次查找
/etc/ld.so.conf 指定的路径顺序
/lib 和 /usr/lib (64位下是/lib64和/usr/lib64)
动态库调用的查找顺序:
d的-rpath参数指定的路径, 这是写死在代码中的
ld脚本指定的路径
LD_LIBRARY_PATH 指定的路径
/etc/ld.so.conf 指定的路径
/lib和/usr/lib(64位下是/lib64和/usr/lib64)

热心网友 时间:2023-11-12 18:35

“undefined reference to”的意思是,该函数未定义。
如果使用的是gcc,有以下检查方案:
如果提示未定义的函数是某个库的函数。检查库时候已经安装,并在编译命令中采用-l和-L参数导入库。
如果提示未定义的函数是程序中的函数。检查是否在头文件中声明,是否在编译中有对应的obj文件,检查函数的或者变量的名字是否正确,是否是因为前后拼写不一致造成的。
如果提示未定义的函数是程序中的函数,还有一种很隐蔽的可能:检查改函数的代码的上下文是否有#ifdef或者#ifndef等预编译信息,这也很有可能导致相关代码没有被编译而出现“undefined reference to”提示。

热心网友 时间:2023-11-12 18:36

链接时出现一个undefined reference to 问题,实在不懂为什么

神舟船长 LV8
2016-02-02
满意答案

bbss005
LV12
推荐于2018-03-13
“undefined reference to”的意思是,该函数未定义。
如果使用的是gcc,有以下检查方案:
如果提示未定义的函数是某个库的函数。检查库时候已经安装,并在编译命令中采用-l和-L参数导入库。
如果提示未定义的函数是程序中的函数。检查是否在头文件中声明,是否在编译中有对应的obj文件,检查函数的或者变量的名字是否正确,是否是因为前后拼写不一致造成的。
如果提示未定义的函数是程序中的函数,还有一种很隐蔽的可能:检查改函数的代码的上下文是否有#ifdef或者#ifndef等预编译信息,这也很有可能导致相关代码没有被编译而出现“undefined reference to”提示。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
山东沃尔德集团集团所辖公司介绍 齐鲁银行无忧贷和市民贷哪个好 什么叫补按揭 后按揭贷款什么意思 买房者续按揭有什么危害 加按揭是什么意思 八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... visual stdio2008 安装qt库 ubuntu 下的QT编程例子 安装QT环境遇到这种情况怎么破 win7系统下Qt编译出错的解决方法 安装qt creator的环境 怎样在ubuntu下安装Qt开发环境 如何在ubuntu中安装qt程序 ubuntu下怎么安装qt creator-CSDN论坛 丢失QtGui4.dall 网上下载的没用 我家WIN7 64位的 qt移植到s3c2440开发板上,出现too short的问题 如何在Windows下构建ARM Linux QT开发环境 QT5静态编译无法加载数据库插件 路由器和交换机区别在那啊?详细的讲解! 怎么在Qt中用linux下安装都库 硪国有那些著名的书法家? Qt 软件中怎么自动加入build版本号 我国古代有哪些书法家 qt怎么自动选择配置的define参数 详细介绍下迈阿密这个城市 如何编译qtfreetype.lib python的pymol专家 MOS管和DCDC升压转换器的主要参数是···? 96V直流输入如何变成72V直流输出?求电路图。 晋江市各镇的人数姓氏分布! DCDC降压芯片的软起动时间是什么意思 DCDC降压芯片的输入端的滤波电容发烫? dcdc带负载能力看芯片的哪一项参数 梦到自己舌头上长了四颗牙齿意味着什么 周公解梦梦见自己 梦见四个月的儿子舌头上长了一颗牙齿,是什么 为什么选择图形数据库,为什么选择neo4j 想问一下图数据库neo4j和spark下面的graphx有什么区别 梦见舌头长芽 梦见自己长了四颗牙齿 Graphscope、Neo4j有人用过吗?感受如何? nosql数据库的几大类型 为什么要用NoSQL数据库管理系统 梦见自已嘴里长肉包 如何用 SQL 实现 Dijkstra 的最短路径算法 spark graphx 可以求两点之间所有通路吗