【问题标题】:Creating a CMakeLists.txt with header and mains创建带有标题和电源的 CMakeLists.txt
【发布时间】:2017-10-31 23:22:26
【问题描述】:

我将我的程序分为 3 个文件夹:build、include 和 src。

Build 是我希望从 Makefile 创建的所有文件的位置,include 包含“file.h”,src 包含“file.c”和“main.c”。

我已经在 CMakeLists.txt 文件中写了这个:

cmake_minimum_required (VERSION 3.5.1)

project(Listas_interlazadas)

include_directories(${include})


add_executable(ejec
  src/main.c
  src/listas.c
  include/listas.h

)

尽管如此,我相信我应该以某种方式包含 src 文件夹。另外,如何将所有文件发送到构建文件夹?从航站楼,对吧?

谢谢。

【问题讨论】:

    标签: makefile cmake header


    【解决方案1】:

    您的代码需要一些小的修改。

    • include_directories 命令必须指向有效路径
    • 仅在不包含在您的任何源文件中的情况下添加头文件

    假设您的项目结构如下:

       project
         +--source
         |    +--CMakeLists.txt
         |    +--src
         |    |    +--main.c 
         |    |    +--listas.c 
         |    +--include
         |         +--listas.h     
         +--build
    

    重做的 CMakeLists.txt

    cmake_minimum_required (VERSION 3.5.1)
    
    project(Listas_interlazadas)
    
    include_directories(include)
    
    add_executable(ejec
      src/main.c
      src/listas.c
    )
    

    回到你的问题:

    • 添加源:您已插入所需的源文件。见add_executable
    • 将源代码复制到构建文件夹:这不是必需的。

    要构建您的项目,您必须运行 cmake 和 make(或在 windows 上运行 nmake)。

    步骤:

    1. 打开命令外壳
    2. 移至构建文件夹
    3. 运行:cmake ../source
    4. 运行:make

    Some important parts of a CMakeLists.txt

    【讨论】:

    • add_executable 中列出标题确实有意义,f.i.让您的 IDE 知道它们是您项目的一部分。
    • 你是对的。但这不是 OP 要求的,它取决于 IDE。例如。 QtCreator 不需要它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 2020-08-05
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多