news 2026/4/23 22:19:05

【c++】——c++编译的so中函数有额外的字符

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【c++】——c++编译的so中函数有额外的字符

0. 代码

// cintadd(inta,intb){returna+b;}

用gcc编译成动态库,并用nm看函数名字。

gcc -shared -fPIC -o libtest.so add.c nm -D --defined-only ./libtest.so|grep-E"[Tt]"0000000000201020 B __bss_start 0000000000201020 D _edata 000000000000056c T _fini 0000000000000460 T _init 0000000000000555 Tadd

用g++编译成动态库,并用nm看函数名字

g++ -shared -fPIC -o libtestc++.so add.c nm -D --defined-only ./libtestc++.so|grep-E"[Tt]"0000000000000555 T _Z3addii 0000000000201020 B __bss_start 0000000000201020 D _edata 000000000000056c T _fini 0000000000000468 T _init

如果要g++编译动态的名字不变,需要加上以下代码

// add.h#ifdef__cplusplusextern"C"{intadd(inta,intb);}#endif// add.c#include"add.h"intadd(inta,intb){returna+b;}

1. 原因

这个是 C++ 的名字修饰(Name Mangling) 机制导致的,是 C++ 为了支持函数重载、命名空间、类成员函数等特性,而对函数名进行的特殊编码,最终会在编译后的 SO(共享库)中生成带有额外字符的函数名。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:10:53

数据驱动领导管理革新,用友HR SaaS赋能国企构建全周期数智化体系!

近年来,在深化国有企业改革、推动高质量发展的宏观背景下,建设一支政治过硬、专业精湛、结构合理的干部队伍,已成为国有企业提升核心竞争力的关键。制度惯性、数据壁垒以及 “人” 的复杂性,使得传统干部管理仍较多依赖主观经验与…

作者头像 李华
网站建设 2026/4/23 12:10:27

迁移学习的第一类方法:数据分布自适应(1)——边缘分布自适应

Hi,大家好,我是半亩花海。在上节说明了迁移学习领域的基本方法(基于样本、特征、模型、关系的迁移)之后,本文主要将介绍迁移学习的第一类方法——数据分布自适应,重点阐述了边缘分布自适应的原理与应用。该…

作者头像 李华
网站建设 2026/4/23 12:10:53

云原生安全实战:一次72小时的DDoS攻击,我们是怎么活下来的?

“我们被打崩了”:一次DDoS攻击,如何差点毁掉我们的项目?对于线上业务来说,最可怕的不是没用户,而是用户来了,你却挂了。这句话,是我们团队用真金白银和无数不眠之夜换来的教训。那是一个普通的…

作者头像 李华
网站建设 2026/4/23 13:30:21

【RegExp】正则表达式 - 基础语法

正则表达式基础 简介在线工具 元字符分组与引用运算符优先级贪婪模式 简介 在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。 很可能…

作者头像 李华
网站建设 2026/4/23 13:33:37

Anthropic宪法

Anthropic宪法参考网址 ConstitutionalAI(RLAIF)_通过AI自我监督实现无害化训练:https://blog.csdn.net/shizheng_Li/article/details/147634853Claude3秘密武器曝光_Claude宪法:https://cloud.tencent.com/developer/article/2419721Constitutional AI …

作者头像 李华
网站建设 2026/4/23 10:44:20

太平洋大西洋水流问题:DFS递归、DFS栈、BFS三种解法全解析

一、问题描述给定一个 m x n 的非负整数矩阵 heights ,矩阵的左边界和上边界毗邻太平洋,右边界和下边界毗邻大西洋。水流的流动规则为:只能从高处流向低处,或者在同等高度的单元格之间流动。请找出矩阵中所有既可以流向太平洋&…

作者头像 李华