如何避免使用CMake目标日志污染目录

如何避免使用CMake目标日志污染目录,cmake,Cmake,我有一个简单的项目,其中有一个名为a的共享库和一个名为B链接a的可执行文件。我在我的源代码之外创建了一个Visual Studio 2017构建,以便构建目录和源代码目录都具有相同的父目录。这很好 但当我构建Visual Studio 2017解决方案时,许多不需要的目录也出现在父目录下;每个确实运行的目标(A、B、安装等)一个,其中包含该目标的生成日志。我不想要那些污染日志目录,或者如果它们无法避免的话,它们会出现在我的构建目录下。有人知道怎么处理吗 CMake版本:3.8.1 编辑 最后3个

我有一个简单的项目,其中有一个名为a的共享库和一个名为B链接a的可执行文件。我在我的源代码之外创建了一个Visual Studio 2017构建,以便构建目录和源代码目录都具有相同的父目录。这很好

但当我构建Visual Studio 2017解决方案时,许多不需要的目录也出现在父目录下;每个确实运行的目标(A、B、安装等)一个,其中包含该目标的生成日志。我不想要那些污染日志目录,或者如果它们无法避免的话,它们会出现在我的构建目录下。有人知道怎么处理吗

CMake版本:3.8.1

编辑

最后3个目录是不需要的目录:

Parent directory
|-- build-vc15-x64 directory
    |-- VS 2017 related stuff
|-- sources directory
    |-- CMakeLists.txt
    |-- libA sources directory
        |-- stuff for libA
    |-- execB sources directory
        |-- stuff for execB
|-- unexpected directory here when building libA in solution in build-vc15-x64 (contains build log file of libA)
|-- unexpected directory here when building execB in solution in build-vc-15-x64 (contains build log file of execB)
|-- x64 (contains build log file of target INSTALL)

使用源代码外版本,换句话说,您的版本和源目录应该是不同的目录。此外,您必须调用CMake并在构建目录中构建,而不是在父目录中。CMake在调用它的地方创建一组辅助文件和目录


在source和build dir的公共父目录中调用CMake没有意义。

它们位于不同的目录中。我已经用schema编辑了我的问题。你会更好地理解发生了什么。