c - C 代码库中的全局变量识别

标签 c linker

我有一个 C 代码库,需要以编程方式识别所有使用的全局变量。我认为可以使 gcc 生成内存映射文件,但不知道如何生成,这可能会让我看到哪些变量是全局的?任何帮助将不胜感激。

干杯

最佳答案

您可以使用 nm 从目标文件中提取此类信息。

nm *.o | grep OBJT | grep GLOB

编辑 上面的命令适用于 Solaris 的 nm(SUNWbtool 软件包)。为了便携性,nm 有一个参数来选择输出格式:

nm -f [posix|bsd|sysv] *.o

关于c - C 代码库中的全局变量识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/434968/

相关文章:

c - 为什么 Eclipse 生成的头文件以#ifndef 和#define 开头?

c - 分配乘法表的问题

c++ - 二进制链接与 gold 链接器运行得更快吗?

c - -Ofast 以外的任何内容都会导致 "undefined reference"错误

c - 获取数字的位数

c - MinGW : reading binary data fail

c - 如何正确定义全局结构变量?

c - 在跨 dll 边界访问导出的全局变量时检测缺少的 __declspec(dllimport)

c++ - 在源文件 (cpp) 中定义带有静态和内联的模板函数有哪些优势?

windows - 如何通过 MSVS 2017 x64 命令行将链接器选项传递给 `cl`?