【问题标题】:Linux C++ project directory layout - CMakeLinux C++ 项目目录布局 - CMake
【发布时间】:2011-03-22 11:56:13
【问题描述】:

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

 Project-
            executable1
            executable2
            library

但是我认为像下面这样设置会更好

Project -
    lib //Library output folder
    bin //Executable output folder
    src //Al cpp source files
    include //All header files
    test //All tests

我会在顶层只有一个 CMakeLists。 我可以很容易地在 cmake 中进行设置。有人有理由选择不同的布局吗?

【问题讨论】:

    标签: c++ linux cmake


    【解决方案1】:

    我不会将 lib、bin 和 test 输出直接放在项目目录中:如果你想进行调试和发布构建,你会卡住,因为你只有一个占位符。 Out of source build 是你的朋友!我会使用类似的东西:

    Project
         src
         include
         CMakeLists.txt
    

    这些将在使用 cmake 时生成:

    Project_build_dbg
         bin
         lib
         test
    
    Project_build_release
         bin
         lib
         test
    

    【讨论】:

    • +1 用于源外构建。不会弄乱您的源目录,不需要您编辑 VCS 的忽略文件,允许您压缩源目录而不会产生 xxx mb zip,因为它包含目标文件等。
    • 好主意,现在需要弄清楚如何拥有两种不同的构建类型。
    【解决方案2】:

    您建议使用的布局几乎是大多数项目的组织方式。这是一种组织良好的项目方式。我通常还有一个docs 文件夹,其中包含有关该项目的所有文档。所以这是我通常的项目设置。

    Project -
        lib //Library output folder
        bin //Executable output folder
        src //All cpp source files
        include //All header files
        test //All tests
        docs //All project documentation   ------> new addition
    

    【讨论】:

    • +1 文档,我忘记了,谢谢。也意味着它们会受到我的 git 设置的版本控制。但是如上所述,我会将 lib/bin/test 移到项目源之外。
    猜你喜欢
    • 2012-01-21
    • 2010-09-08
    • 1970-01-01
    • 2010-11-13
    • 2011-04-18
    • 2011-01-29
    • 2010-10-28
    • 2022-08-14
    • 2014-10-06
    相关资源
    最近更新 更多