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

标签 c gcc

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

在某些情况下,这可能会导致函数 undefined reference 失败,例如在指定 -Os 优化时 __gnu_thumb1_case_uqi

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

最佳答案

你可以试试:

-fno-builtin
-fno-builtin-function

Don’t recognize built-in functions that do not begin with ‘__builtin_’ as prefix. See Other built-in functions provided by GCC, for details of the functions affected, including those which are not built-in functions when -ansi or -std options for strict ISO C conformance are used because they do not have an ISO standard meaning.

<子> GCC Online Docs

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

关于c - 是否可以将编译期间发出的某些内置函数列入黑名单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46415376/

相关文章:

C++ 链接器 - 缺少重复符号

在没有无关信息的情况下编译

c++ - 可变长度初始化数组可变地工作(在计算机之间)

c - 运行时检查失败 #0

c - v[i++] 在 C 中未定义吗?

c - 如何在gdb中的工作目录外设置断点

c++ - GCC 的已知 C/C++ 优化是什么

c - 我的程序关于选择排序有什么问题?

c# - 用 C# dll 替换 c api dll 而不影响客户端

c - Segmentation Fault 11 during Runtime in C,使用gcc编译