是否有可能在编译期间将某些内置函数列入黑名单?

时间:2017-09-25 22:57:53

标签: c gcc

在一些项目中,我明确地没有链接libgcc,所以有些东西丢失了。

在某些情况下,例如在指定__gnu_thumb1_case_uqi优化时,这会导致-Os等函数的未定义引用失败。

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

1 个答案:

答案 0 :(得分:0)

您可以尝试:

-fno-builtin
-fno-builtin-function
     
    

不要识别不以“__builtin_”作为前缀的内置函数。有关受影响的功能的详细信息,请参阅GCC提供的其他内置函数,包括那些在使用-ansi-std严格ISO C一致性选项时不是内置函数的函数,因为它们不具有ISO标准含义。

  
     

<子> GCC Online Docs

但是,如果#include头文件的宏扩展为对GCC内置函数的调用,则只能通过不包含这些头来阻止它。如果您没有链接标准库,您可能也不希望包含标准头文件。