【问题标题】:Where should I put CMakeLists.txt files?我应该把 CMakeLists.txt 文件放在哪里?
【发布时间】:2011-10-02 22:10:26
【问题描述】:

我们想用 C 语言开发一些动态链接库,每个库都适用于 Linux 和 Windows。我们想使用 CMake。

我们如何组织目录以及将这些CMakeLists.txt 文件放在哪里? (或者我们应该只有一个?)

【问题讨论】:

    标签: c build cmake


    【解决方案1】:

    没有必须完成的唯一方法,但这是一种可能的方法:

    CMakeLists.txt
    src/
        CMakeLists.txt
        lib1/
            CMakeLists.txt
            lib1.c
        lib2/
            CMakeLists.txt
            lib2.c
        app/
            CMakeLists.txt
            app.c
    include/
        lib1.h
        lib2.h
    

    虽然您可以在顶级 CMakeLists.txt 文件中执行所有操作,但如果您的项目很复杂,它会很快变得庞大而混乱。

    【讨论】:

    • 请问在哪里可以获得这些build 目录? -- 我认为每个图书馆都应该有一个。我说的对吗?
    • 我把 build 目录和 src/ 和 include/ 目录放在同级。在构建目录中,运行命令“cmake ..”,然后运行“make”(假设在 *nix 上)。这称为源外构建,因此您的构建工件都不会与源文件混淆。构建目录结构将匹配您项目的目录结构,例如,您的所有 lib1 构建文件都将位于 build/src/lib1 中。
    • @able 仍然在源代码中,因为构建工件最终位于项目目录中。 @cartesius00 设计时考虑到灵活性的项目应该允许用户为其构建目录选择任何位置。这样,他们可以一次构建多个配置。有关详细信息,请参阅this section of the CMake FAQ。如果你能cd /tmp && cmake /home/cartesius00/my-project,你就会知道你是否做对了。
    猜你喜欢
    • 2010-12-01
    • 2018-09-28
    • 2019-10-04
    • 2020-09-30
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 2016-08-25
    • 2013-08-15
    相关资源
    最近更新 更多