怎样查找所缺的函数在哪个库里

x86 2002-12-09 03:54:29
如果编译的时候报告undefined reference,多半是没有连接相应的库,可是应该连接哪个库呢?

库一般都放到/usr/lib或者/lib下面,也有的放在/usr/local/lib下面
strings命令用于查看一个.o或者.a或者.so里面的名字(可能是函数,也可能是变量)

find /usr/lib -print --exec strings {} \; > /tmp/strings.tmp
这个命令的意思是查找/usr/lib下面的所有文件,对每一个文件执行命令strings,{}代表当前查找到的文件名,\;表示命令结束。所有的输出结果写到文件/tmp/strings.tmp当中,这个文件包含了/usr/lib目录下所有库里的名字(函数和全局变量)。
打开文件/tmp/strings.tmp(可能有几十M),查找你缺少的名字,然后往后查,看看属于哪个库文件,-print参数就用来打印文件名。

算是回答karalme的问题吧
...全文
171 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
林雨亭 2002-12-09
  • 打赏
  • 举报
回复
1:用man xxx命令来找帮助,里面有头文件和库。
2:如果没有,用google搜索。
3:如果知道库的名字,可以用locate定位。
资源下载链接为: https://pan.quark.cn/s/67c535f75d4c VScode 是一款广受开发者青睐的多功能代码编辑器,对 C++ 语言支持良好,但在编译 C++ 代码过程中,开发者常会遭遇头文件 “not found” 的困扰,本文旨在提供解决此问题的详细方法及相关知识解读。 在 C++ 开发领域,头文件扮演着关键角色,它是存放函数与变量声明的文件,常见后缀为 .h 或 .hpp。头文件是 C++ 编译器顺利编译代码不可或缺的要素。以 iostream 为例,作为 C++ 标准库里的头文件,它承载着输入输出相关函数的声明。 当我们在 VScode 编辑器里编译 C++ 代码时,头文件 “not found” 的报错时有发生。这主要是因为 VScode 未能定位到头文件的存放路径,致使编译流程中断。比如,当代码中出现以下引用: 若这些头文件所在路径未被纳入默认搜索范围(如 /usr/include 或 /usr/local/include),编译时就会弹出 “file not found” 的错误提示。 借助快捷键 shift+command+p 调出命令面板,选择 “C/C++: Edit Configurations” 来编辑 c_cpp_properties.json 文件,在其中的 includePath 字段里添加头文件所在路径。示例配置如下: 同样通过快捷键 shift+command+p,选择 “Tasks: Configure Task” 来编辑 task.json 文件,像这样添加头文件搜索路径参数: 此处通过 “-I” 参数后跟路径 “/Users/ws/project/c/local”,明确指定了头文件搜索位置。 除了上述两种主要方法,还可以考虑启用 clang.diagnostic.enable 选项来屏蔽头文件搜索错误提示;

23,215

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧