我正在编写一个 Linux 内核模块,我想在同一部分中包含一些代码和相关数据。我用属性标签声明数据和函数,例如:
void * foo __attribute__ ((section ("SEC_A"))) = NULL;
void bar(void) __attribute__ ((section("SEC_A")));
但是,当我这样做时,gcc 抱怨:
error: foo causes a section type conflict
如果我没有用特定的部分名称声明函数,gcc 就可以了。但我希望函数和变量都在同一部分。
有没有办法用 gcc 做到这一点?我的 gcc 版本是gcc (Ubuntu 4.3.2-1ubuntu12) 4.3.2