C 是否可以将编译期间发出的某些内置函数列入黑名单?

C 是否可以将编译期间发出的某些内置函数列入黑名单?,c,gcc,C,Gcc,在一些项目中,我明确地没有链接到libgcc,因此缺少了一些东西 在某些情况下,例如在指定-Os优化时,这可能会导致函数(如\uu gnu\u thumb1\u case\u uqi)的未定义引用失败 如何防止gcc在编译期间发出这些函数?您可以尝试: 不要识别不以“\uuuuu builtin\uu”作为前缀的内置函数。有关受影响函数的详细信息,请参见GCC提供的其他内置函数,包括当使用严格ISO C一致性的-ansi或-std选项时不是内置函数的函数,因为它们没有ISO标准含义 但是,如果

在一些项目中,我明确地没有链接到libgcc,因此缺少了一些东西

在某些情况下,例如在指定
-Os
优化时,这可能会导致函数(如
\uu gnu\u thumb1\u case\u uqi
)的未定义引用失败

如何防止gcc在编译期间发出这些函数?

您可以尝试:

不要识别不以“
\uuuuu builtin\uu
”作为前缀的内置函数。有关受影响函数的详细信息,请参见GCC提供的其他内置函数,包括当使用严格ISO C一致性的
-ansi
-std
选项时不是内置函数的函数,因为它们没有ISO标准含义


但是,如果您将#头文件包含在宏中,这些宏扩展为对GCC内置函数的调用,则只能通过不包含这些头文件来停止。如果您没有链接到标准库,那么您可能也不想从标准头文件中包含。

我认为不可能完全避免对libgcc的调用。
-fno-builtin
-fno-builtin-function