c++编译后的函数名 - .cpp文件编译成.o文件后,函数名称的变化
发布日期:2021-06-29 14:21:08
浏览次数:3
分类:技术文章
本文共 899 字,大约阅读时间需要 2 分钟。
ar::start::initial:start(int a,int b),经过编译成.o后,变成了什么名称?
c++编译后的函数名
c++源代码,编译时,函数名会被编译器修改,变成编译器内部的名字(名字规则由编译器定义)。
修改后的名字,会在链接时用到。
linux g++,翻译规则:
每个方法都是以_Z开头,对于嵌套的名字(比如名字空间中的名字或者是类中间的名字,比如Class::Func)后面紧跟N , 然后是各个名字空间和类的名字,每个名字前是名字字符的长度,再以E结尾。(如果不是嵌套名字则不需要以E结尾)
c++filt 工具,将编译后的函数名,翻译成源码函数名
实例:
源码:
TunApplication_base.cc:(.text+0x40c): undefined reference to `vkn::com::Runtime::getInstance()
include/vkn/com/runtime.h
/*!
* \brief Returns an instance of Runtime class * \return Runtime instance */ static Runtime& getInstance();二进制库:
objdump -D libvkn.a
0000000000002464 <_GLOBAL__sub_I__ZN3vkn3com7Runtime11getInstanceEv>:
2464: a9bf7bfd stp x29, x30, [sp, #-16]! 2468: 910003fd mov x29, sp 246c: 529fffe1 mov w1, #0xffff // #65535 2470: 52800020 mov w0, #0x1 // #1 2474: 97ffff2a bl 211c <_Z41__static_initialization_and_destruction_0ii> 2478: a8c17bfd ldp x29, x30, [sp], #16 247c: d65f03c0 ret
转载地址:https://chilaidashi.blog.csdn.net/article/details/107125659 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月14日 04时23分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
DM365 应用层gpio控制
2019-04-29
Vc6 Button 的WM_LBUTTONDOWN、WM_LBUTTONUP消息响应
2019-04-29
linux i2c子系统abc
2019-04-29
kernel 2.6.32 Unknown symbol 错误
2019-04-29
gstreamer GST_BOILERPLATE_FULL 分析
2019-04-29
力扣的两数之和解法(python3)
2019-04-29
力扣的删除排序数组中的重复项解法(python)
2019-04-29
力扣的移除元素 解法 Python3
2019-04-29
力扣的三数之和解法(Python3)
2019-04-29
力扣的最接近的三数之和解法(Python3)
2019-04-29
力扣的买卖股票的最佳时机 III之解法(Python3)
2019-04-29
LeetCode 合并两个有序链表 解法 (Python)
2019-04-29
力扣的删除排序链表中的重复元素解法 (Python3)
2019-04-29
力扣的环形链表解法 (Python)
2019-04-29
力扣的盛最多水的容器解法 (Python)
2019-04-29
力扣的电话号码的字母组合解法(Python)
2019-04-29
力扣的组合总和解法 (Python)
2019-04-29
力扣的两数相加解法 (Python)
2019-04-29
力扣的删除链表的倒数第N个节点解法(Python)
2019-04-29
力扣的串联所有单词的子串解法(Python)
2019-04-29