linker - C++ 中的符号 – 它们是否在非调试版本中导出?

标签 linker export name-mangling

C++ 修饰符号名称。然后,在调试时可以使用这些名称 - 但前提是二进制文件未被删除。其他使用场景是共享库 - 符号名称可以导出并在库中可见。

但在两者中:

a.剥离构建,

b.以及正常的非共享库构建

二进制文件中应该没有可用的符号?例如,字符串工具不会输出任何符号?

最佳答案

strip 命令从镜像中删除调试符号。共享库中导出的符号不是调试符号,并且不会被 strip 删除。这些符号可用于定位函数/数据,但它们不会将代码与源代码关联起来。

关于linker - C++ 中的符号 – 它们是否在非调试版本中导出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12255493/

相关文章:

c++ - 如何在 Clang 中获取 NamedDecl 的错位名称?

c++ - gcc 的 protobuf 编译问题

node.js - 如何使用 Docker 导出 Mongo 数据库?

ios - 如何自定义 swiftui 文件导出器以显示保存而不是移动

reactjs - 从组件获取状态并将其显示为 div 内的值属性?

ios - Clang/LD 函数分解?

python - "Private"名称修改和实例与类属性

c++ - 如何使用我自己的库 C++ ubuntu

c++ - 与链接器无关的链接器错误

c++ - Premake OpenGL SDK 无法从教程构建项目