如何在构建之后在编译时宏中删除代码

0 c c++

我确实在代码中说#if A并创建了一个lib.

现在由于某种原因,我确实想要从包含#if A的lib中取出代码而不重新编译lib.

我可以使用一些命令来做到这一点.

此致,Kiran

Phi*_*ter 5

所以你说你有一个像这样的.c文件:

<list of code>
#if A
 <optional code>
#endif
Run Code Online (Sandbox Code Playgroud)

并且您将此.c文件编译为已编译的库(.lib,.dll,.so,.o或.a),并且您<optional code>要从已编译的库中删除它?它无法完成,因为#if A编译库中不存在该指令; 它在编译时进行静态处理(理论上,在预处理期间编译之前),并且完全包含或完全从编译库中排除.改变它的唯一方法是重新编译.