C 移动/删除符号
C++ move/remove symbol
假设我有一个.cpp
文件,其中我必须包括一个第三方标题文件,该文件声明一些符号(我们称其为 div
)。我不需要此符号,但是我需要定义自己的div
符号。但是,标题文件的其他部分可以使用原始符号。是否可以从全局名称空间中删除符号(类似于undef
宏)?
我想要这样的东西:
#include <string> //stdlib.h defines div symbol
//do some symbol removal magic here
std::string div;
使用-std=c++11
选项使用GCC-4.7/Clang进行编译。
您无法从定义的名称空间中删除符号(包括全局名称空间)。
将自己的div
包装在您自己的名称空间中。
基本上, no 。
但是,正如其他人所说的那样,您可以使用名称空间来获得相同的效果,而实际上实际上是完全不同的符号。
我从未使用过它,但是您可以尝试使用gnu objcopy(如https://stackoverflow.com/a/1950629/721929中所建议)。
,但我认为如果您控制了源代码,这是可以避免的。测试是否有效,现在是昂贵的。
--redefine-sym old=new
Change the name of a symbol old, to new. This can be useful when one is
trying link two things together for which you have no source,
and there are name collisions.
objcopy --redefine-sym oldNew=newNew libBlue.a
相关文章:
- 如果我想链接静态库并删除未使用的符号.txt我应该如何处理 Cmakelist
- 如何从字符数组(不是字符串数组)中删除符号
- 有没有一种预处理器的方法可以从调试符号中删除代码段
- 用于删除符号并生成排列的算法
- 从静态库中去除/删除调试符号和存档名称
- Nodejs本机模块 - 如何删除调试符号
- bad_alloc::'标量删除析构函数'(无符号整数)当我尝试创建矢量 470MB 大小时
- 如何根据行总数的条件在犰狳中删除 SpMat<无符号 int> 的行?
- 重命名批处理文件(删除名称中的一些符号)(python/matlab/shell)
- C 删除某些符号/标点符号
- 如何在C++的推文中删除表情符号
- 如何删除LD:Xcode 4.2(C 代码)中的重复符号_
- C 移动/删除符号
- 如何删除注册表中拙劣的符号链接
- 是否删除整数的符号扩展
- 删除字符串 c++ 中 < 和 > 符号之间的单词
- 如何在删除或处理文件夹树时处理符号链接和连接
- 删除菜单项后,如何在视觉工作室中删除资源符号,当它说"in use"?
- 从 GCC 可执行文件中删除符号和 RTTI 文本
- 无法从使用 Cmake 创建的可执行文件中删除符号名称