影子编译其实就是将编译目录跟源码目录分开,保持源码目录的干净,同时也方便针对不同编译设置下的编译工作互不影响,用官方的话语就是对同一份源码,支持多种不同口味的编译加工,输出想要的结果。
在QtCreator中,默认就自带了这个影子编译的选项。在vs中如何操作呢,非常简单,新建一个目录,在这个目录下执行qmake来生成sln文件即可,同时也会自动生成与源码目录结构完全一致的一个目录结构。
mkdir build
cd build
qmake -r -tp vc ../my-project/MyProject.pro
影子编译这个概念CMake也支持,对应是out of source 编译,甚至支持的比qmake还要好。有兴趣也可以继续研究一下。