我只知道#ifdef与#undef等预编译命令可以用于指定是否包含某些特定文件现在,我想在工程中,通过#ifdef等预编译命令来指定是否包括,编译和链接某些特定文件,不知道是否可行,试了一下,未能成功!比如在工程中,有main.cpp, A.h, A.cpp, B.h, B.cpp,其中,A.h和A.cpp分别用于类A的定义和实现,B.h和B.cpp用于类B的定义和实现,并且都在main.cpp中进行了#include那么,我能否使用一些预编译命令,在暂时不想使用类B的前提下,将B.h和B.cpp暂时移出此工程,此后,进行编译和链接时,就不再对B.cpp进行编译而生成B.obj了,就好像B.h和B.cpp已经完全被Remove出去了一样。请问高手如何操作?多谢!

解决方案 »

  1.   

    1.条件编译和链接没关系吧。
    2.不对B.cpp进行编译而生成B.obj用条件编译实现不了吧。
      

  2.   

    在stdafx.h里面可以定义/不定义某些宏,在你的CPP文件里加入这些宏作为编译条件,比如
    a.cpp#ifdef USE_A
    #include "a.h"
    ...
    #endif当没有定义USE_A时,整个a.cpp文件相当于空文件
      

  3.   

    嗯,楼上的说法有点道理.可以在.cpp中加入#ifdef进行判断和整理.