-wrap 选项的 GNU 链接器通配符

GNU linker wildcard for -wrap option

有没有办法对源文件中定义的所有函数使用 -wrap 选项,而无需手动列出它们?

我想过该选项的一些通配符,但我的研究一无所获。我还考虑过研究一种使用 make 提取源文件函数的方法,但也没有成功。

还有其他方法吗?

你可以按照here的建议使用ctagssed在每个前面加上-wrap,然后在命令行中注入结果。

--- 编辑 ---

例如:

a=`ctags -o- --fields=-fkst --c-kinds=f myprint.c | cut -f1 | sed -e 's/^\(.*\)/-wrap /g'`
echo $a

会给你:

-wrap main -wrap myprint

您也可以将所有内容组合在一行中:

ld ... `ctags -o- --fields=-fkst --c-kinds=f myprint.c | cut -f1 | sed -e 's/^/-wrap /'`