我确实在代码中说#if A并创建了一个lib。
现在由于某种原因,我确实想要从包含#if A的lib中取出代码而不重新编译lib。
我可以使用某些命令来执行此操作。
此致 基兰
答案 0 :(得分:5)
所以你说你有一个像这样的.c文件:
<list of code>
#if A
<optional code>
#endif
您将此.c文件编译为已编译的库(.lib,.dll,.so,.o或.a),并且要从编译的库中删除<optional code>
?它无法完成,因为编译库中不存在#if A
指令;它在编译时被静态处理(理论上,在预处理期间编译之前)并且完全包含或完全从编译库中排除。改变它的唯一方法是重新编译。
答案 1 :(得分:1)
只是不要使用宏,使用变量。