gpt4 book ai didi

c++ - 生成 View .obj 文件的标题

转载 作者:搜寻专家 更新时间:2023-10-31 00:48:31 24 4
gpt4 key购买 nike

有没有办法为.obj 文件生成c++ 头文件?或者是否有可以查看 .obj 文件的实用程序。我已经找到了在格式之间转换的 objconv,但我找不到任何 .h 生成器/查看器。

最佳答案

鉴于 C++ 标记,情况并不像其他一些答案所暗示的那样绝望。

特别是,至少对于大多数 C++ 编译器,函数的名称将被修饰(Microsoft 称之为“装饰”)以指示该函数采用的参数。不同编译器的修饰方案各不相同,但本质上,它们中的任何一个都编码了足够的信息,供您重新创建函数的声明——返回类型、函数本身的名称、类名(如果它是成员函数) ,以及函数期望的参数的确切数量和类型。

虽然不必通过修改名称来完成,但 C++ 系统别无选择,只能在目标文件中包含参数信息。当您重载函数时,链接器需要某种方式来确定将哪个重载链接到特定调用。

我应该补充一点,尽管将这些全部整理出来可能需要相当多的工作——例如,如果代码包含模板,目标文件中的符号名称将扩展所有模板参数(包括默认参数)。例如,考虑像这样的一小段代码:

#include <vector>
#include <string>

std::vector<std::string> x;

当我用 VC++ 编译它,然后执行 dumpbin/symbols foo.obj 时,输出大约为 75 KB。尽管我的源代码似乎只定义了一个符号,但目标文件包含大约 180 个符号的定义,其中许多几乎与我编写的任何内容完全无关。

还值得一提的是,如果目标文件是使用调试信息编译的,那么(通常)也会在目标文件中产生更多的类型信息(等等)。

关于c++ - 生成 View .obj 文件的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2552034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com