查找在其中定义特定函数的库
Find the library that a specific function is defined in
有人给我发了一段C++代码,其中包括一些我不熟悉的头和函数。我想找到哪个头文件定义了一个特定的函数。例如,我有以下标题:
#include <iostream>
#include <ncurses.h>
#include <stdlib.h>
#include <stdio.h>
#include <pthread.h>
#include <time.h>
#include <unistd.h>
#include <termios.h>
#include <fcntl.h>
我想知道他们中有谁定义了这个函数:
tcgetattr
或者他们中的哪一个定义了这个结构:
termios
有人能帮我吗?
tcgetattr
是termios.h
的"获取属性"函数。termios
结构也来自该标头,因为它共享该名称,所以我认为这是不言而喻的。
例如,请参阅此处的Linux手册页。
如果你想知道哪些标头包含任意函数,我通常(在类似UNIX的操作系统中)只在已知位置使用grep
,比如:
grep tcgetattr /usr/include/*.h /usr/include/*/*.h
(或使用grep
或find
的递归选项到处搜索)。
如果您不知道函数应该在哪里,则可以找到函数声明位置的通用方法:
-
创建一个仅包含这些行的C++源文件。让我们称之为
test.cc
。 -
使用带有
-E
选项的文件进行编译。g++ -E -o test.out test.cc
-
在
test.out
中查找要跟踪的函数。从那里,您可以追踪它来自哪个.h
文件。
相关文章:
- 如何确保C++函数在定义之前声明(如override关键字)
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- CHECK(调用)函数在Google Colab中出错
- 修改链表主函数代码,用户将在其中输入节点的索引和数据以及正确的消息
- 在两个类上协调析构函数,其中一个类需要首先清理
- openCv 3中的等效polyfit函数在其中
- C++ 从未在其中定义的函数访问类
- 如何在具有指向对象的指针数组的类中创建复制构造函数和析构函数,其中对象本身具有指向整数的指针数组
- c++类并在其中定义函数
- 为什么不允许将右值引用绑定到非常数引用,而允许在其中一个上调用非常数成员函数
- 在构造函数的使用和不在其中放置什么/不放置什么之间感到困惑
- 如何处理虚拟模板函数,其中模板参数的数量在C++中是已知的
- 在 C++11 中调用模板参数的函数,其中模板参数为 chrono::system_clock
- 如何将c++类转换为托管类并在其中调用纯虚函数?
- 我想知道当函数在其中创建对象时会发生什么
- c# /CLI:如果在其中使用Dispose(),则不调用析构函数
- 库函数的新实现,并在其中调用旧实现
- 查找在其中定义特定函数的库
- 将结构传递给函数并在其中输入数据
- 我想创建一个函数,我可以在其中输入一个字符串,它会输出一个混乱的字符串版本