如何让gcc为所有符号名称添加前缀

时间:2012-04-14 21:53:57

标签: c++ c gcc g++ pre-compilation

我知道在过去有一个选项-fprefix-function-name会为所有生成的符号添加前缀,它似乎不再是gcc的一部分。还有其他办法吗?

2 个答案:

答案 0 :(得分:12)

我相信this answer会为您提供解决方案。

简而言之,您可以使用objcopy在现有库中“添加”符号,如下所示:

  

objcopy --prefix-symbols = foo_ foo.o

答案 1 :(得分:3)

*编辑:George Skoptsov's solution比我的好:)尽管nm技巧可能派上用场。


这不是你想要的,但我过去必须做类似的事情(重命名库导出的符号)

如果您知道要重新定义的符号的名称,可以尝试使用objcopy --redefine-syms old=new。有关输入的更多详细信息,请参阅objcopy的手册页(objcopy可能会覆盖您的文件,因此请小心)

如果您不知道符号的名称,可以尝试使用nm来获取符号列表。同样,由于我不确定您正在寻找什么样的符号,因此手册页可能是您最好的选择。