zoukankan      html  css  js  c++  java
  • CMake系列之四:多个源文件-多个目录

    多个源文件,多个目录

    现在进一步将MathFunctions.c和MathFunctions.h文件移到math目录下:

    ./Demo3

      |

      +--- main.c

      |

      +--- math/

         |

         +--- MathFunctions.c

         |

         +--- MathFunctions.h

    CMakeLists.txt编写

    这种情况下,需要在根目录Demo3和子目录math下各写一个CMakeLists.txt文件。为了方便,可以将math目录的文件编译成静态库,再由main函数调用

    根目录下的CMakeLists.txt文件如下:

    # CMake 最低版本号要求
    cmake_minimum_required (VERSION 2.8)
    # 项目信息
    project (Demo3)
    # 查找当前目录下的所有源文件
    # 并将名称保存到 DIR_SRCS 变量
    aux_source_directory(. DIR_SRCS)
    # 添加头文件路径
    include_directories("${PROJECT_SOURCE_DIR}/math")
    # 添加 math 子目录
    add_subdirectory(math)
    # 指定生成目标
    add_executable(Demo main.c)
    # 添加链接库
    target_link_libraries(Demo MathFunctions)

    该文件添加了下面的内容: 使用命令include_directories添加头文件路径。使用命令 add_subdirectory 指明本项目包含一个子目录 math,这样 math 目录下的 CMakeLists.txt 文件和源代码也会被处理 。使用命令 target_link_libraries 指明可执行文件 main 需要连接一个名为 MathFunctions 的链接库 。

    子目录的CMakeList.txt如下:

    # 查找当前目录下的所有源文件
    # 并将名称保存到 DIR_LIB_SRCS 变量
    aux_source_directory(. DIR_LIB_SRCS)
    # 生成链接库
    add_library (MathFunctions ${DIR_LIB_SRCS})

    在该文件中使用命令 add_library 将 src 目录中的源文件编译为静态链接库。在该文件中使用命令 add_library 将 src 目录中的源文件编译为静态链接库。

  • 相关阅读:
    数据库基础概念及操作语句
    多态、封装、继承的概念。
    排序有几种方式
    构造函数、复制构造函数和析构函数的特性
    String类的构造函数,析构函数、拷贝构造函数和赋值函数
    操作系统中进程调度策略
    静态数据成员和函数
    指针与引用的区别
    const的用法及它在C语言和C++中的不同
    反射性能优化
  • 原文地址:https://www.cnblogs.com/wuchaodzxx/p/8916009.html
Copyright © 2011-2022 走看看