我知道过去有一个选项-fprefix-function-name
可以为所有生成的符号添加前缀,它似乎不再是 gcc 的一部分。还有其他方法可以做到这一点吗?
我相信这个答案会给你解决方案。
简而言之,您可以使用如下objcopy
在现有库中"前缀"符号:
objcopy --prefix-symbols=foo_ foo.o
*编辑:乔治·斯科普佐夫的解决方案比我的:)更好不过,nm
技巧可能会派上用场。
这不是您要找的,但我过去不得不做类似的事情(重命名库导出的符号)
如果您知道要重新定义的符号的名称,则可以尝试使用 objcopy --redefine-syms old=new
。有关输入的更多详细信息,请参阅 objcopy 的手册页(objcopy 可能会覆盖您的文件,因此请小心)
如果您不知道符号的名称,可以尝试使用 nm
获取符号列表。同样,由于我不确定您要查找哪种符号,因此手册页可能是您最好的选择。