0
我在Linux上使用GCC和GNU Binutils来编译和链接i386 Linux的代码。我想禁止名为.custom
的部分,所以我想下面的失败,编译错误或链接错误:如何在特定的部分强制链接器错误
__attribute__((section(".custom"))) int foo() { return 42; }
int main(void) { return 0; }
,但是这一次应该像往常一样成功:
__attribute__((section(".other"))) int foo() { return 42; }
int main(void) { return 0; }
代码__attribute__((section(".custom")))
不在我的控制之下(所以我不能简单地用.c
文件中的#error
替换它),但命令行标志(和构建过程)在我的控制之下。
是否有一个命令行标志gcc
或ld
或其他一些可以强制错误的技巧?我无法在手册页中找到任何相关内容。
我的备用解决方案是解析生成的可执行文件(例如使用objdump -x
),并且如果.custom
部分将其转换为最终可执行文件,则会失败并显示错误消息。
感谢您的见解。我确实需要一个错误,以便用户知道他所要求的功能在此版本中不存在。 – pts