gpt4 book ai didi

我可以从具有许多编译器标志的 c 程序中导出使用过的代码吗?

转载 作者:行者123 更新时间:2023-12-04 10:12:40 26 4
gpt4 key购买 nike

我想将我们的 linux 驱动程序代码压缩为仅在当前内核上运行的代码。它有一些部分被 if 语句忽略,一直到内核 2.4.x

您是否听说过一种将代码编译为输出的方法,该输出将是工作代码,没有被 c 编译器忽略的所有内容 if else 语句?

我想知道我们是否可以运行 make something 或 gcc something 来简单地生成用于该构建的所有代码。

所以如果我在下面有这个 .c 文件,那么在运行 make 命令后我应该只有最新内核所需的代码。

例子.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
}

最佳答案

您要使用的工具是 sunifdef 或(更新的)coan

另请参阅:Is there a C pre-processor which eliminates #ifdef blocks based on values defined or undefined?

关于我可以从具有许多编译器标志的 c 程序中导出使用过的代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9271984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com