Linux下编译C++程序遇到错误:undefined reference to '***'

时间:2022-05-04 05:26:03

今天再Linux环境下遇到个诡异的现象,在链接动态库时总是报类似下面的错误:

(.text+0x13): undefined reference to `func' 

以下提供几种检查方案:

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