使用标识符形式时,必须在 pragma 位置的作用域中正好有一个具有指定名称的函数。尝试将标识符形式 #pragma weak 用于重载函数会出现错误。例如:
int bar(int); float bar(float); #pragma weak bar // error, ambiguous function name |
要避免错误,请使用字符串形式,如以下示例所示。
int bar(int); float bar(float); #pragma weak "__1cDbar6Fi_i_" // make float bar(int) weak |
有关更多信息,请参见 Solaris《链接程序和库指南》。