我想将我们的linux驱动程序代码压缩到仅在当前内核上运行的代码。它有部分被if语句忽略回到kernele 2.4.x我可以使用许多编译器标志从c程序导出使用的代码吗?
你有没有听说过将代码编译到一个输出的方式,这将是工作代码与所有被忽略的东西c编译器如果else语句?
我想知道如果我们可以运行make或gcc的东西,只会导致所有用于该构建的代码。
所以,如果我有下面这个.c文件,那么在运行make命令后,我应该只有最新内核所需的代码。
example.c
static somefunction .... {
avar = 0;
#if (linux_ver >= 2.6.31)
some newer code
#elseif (linux_ver >= 2.4.24)
some older code
#else
original code
#endif
}
后提取/冷凝,example.c只会阅读如下
static somefunction .... {
avar = 0;
some newer code
}
的可能重复(http://stackoverflow.com/questions/525283/is-在那里 - 交流预处理器 - 它 - 消除 - ifdef-blocks-based-on-values-define) – 2012-02-14 05:29:57