Linux C++项目目录布局 - CMake

Mar*_*ark 7 c++ linux cmake

我想为我的linux c ++项目使用一些标准布局,该项目是使用cmake构建的,包含一些可执行文件和这些exec可能链接到的库.目前我只有一个项目文件夹和每个子项目的子文件夹.最高级别的CMakeLists和opt级别添加的每个子级别中的一个.

 Project-
            executable1
            executable2
            library
Run Code Online (Sandbox Code Playgroud)

但是我认为如下设置会更好

Project -
    lib //Library output folder
    bin //Executable output folder
    src //Al cpp source files
    include //All header files
    test //All tests
Run Code Online (Sandbox Code Playgroud)

我只有一个顶级的CMakeLists.我可以在cmake中轻松设置它.有没有人有理由选择不同的布局?

tib*_*bur 7

我不会将lib,bin和test输出直接放在项目目录中:如果要进行调试和发布版本,则会遇到困难,因为您只有一个占位符.源代码构建是你的朋友!我会使用类似的东西:

Project
     src
     include
     CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)

这些将在使用cmake时生成:

Project_build_dbg
     bin
     lib
     test

Project_build_release
     bin
     lib
     test
Run Code Online (Sandbox Code Playgroud)