zoukankan      html  css  js  c++  java
  • CMake 入门

    编写 CMakeLists.txt

    首先编写 CMakeLists.txt 文件,并保存在与 main.cc 源文件同个目录下:

    # 单个源文件
    # CMake 最低版本号要求
    cmake_minimum_required (VERSION 2.8)
    # 项目信息
    project (Demo1)
    # 指定生成目标
    add_executable(Demo main.cc)

    CMakeLists.txt 的语法比较简单,由命令、注释和空格组成,其中命令是不区分大小写的。符号 # 后面的内容被认为是注释。命令由命令名称、小括号和参数组成,参数之间使用空格进行间隔。

    对于上面的 CMakeLists.txt 文件,依次出现了几个命令:

    1. cmake_minimum_required:指定运行此配置文件所需的 CMake 的最低版本;
    2. project:参数是 main,该命令表示项目的名称是 main 。
    3. add_executable: 将名为 main.cc 的源文件编译成一个名称为 Demo 的可执行文件
    # 同一目录,多个源文件
    # CMake 最低版本号要求
    cmake_minimum_required (VERSION 2.8)
    # 项目信息
    project (Demo2)
    # 查找当前目录下的所有源文件
    # 并将名称保存到 DIR_SRCS 变量
    aux_source_directory(. DIR_SRCS)
    # 指定生成目标
    add_executable(Demo ${DIR_SRCS})

    aux_source_directory: 将当前目录所有源文件的文件名赋值给变量 DIR_SRCS

    add_executable: 指示变量 DIR_SRCS 中的源文件需要编译成一个名称为 Demo 的可执行文件。

    # 多个目录,多个源文件
    
    # 根目录中的 CMakeLists.txt :
    # CMake 最低版本号要求
    cmake_minimum_required (VERSION 2.8)
    # 项目信息
    project (Demo3)
    # 查找当前目录下的所有源文件
    # 并将名称保存到 DIR_SRCS 变量
    aux_source_directory(. DIR_SRCS)
    # 添加 math 子目录
    add_subdirectory(math)
    # 指定生成目标 
    add_executable(Demo main.cc)
    # 添加链接库
    target_link_libraries(Demo MathFunctions)
    
    # 子目录中的 CMakeLists.txt
    # 查找当前目录下的所有源文件
    # 并将名称保存到 DIR_LIB_SRCS 变量
    aux_source_directory(. DIR_LIB_SRCS)
    # 生成链接库
    add_library (MathFunctions ${DIR_LIB_SRCS})

    add_subdirectory: 指明本项目包含一个子目录 math, math 目录下的 CMakeLists.txt 文件和源代码也会被处理

    target_link_libraries: 指明可执行文件 main 需要连接一个名为 MathFunctions 的链接库

    add_library: 将 src 目录中的源文件编译为静态链接库

  • 相关阅读:
    为恶畏人知,恶中犹有善路,为善而急人知,善处即是恶根。
    win7 64位 php环境开启curl服务Call to undefined function
    php根据汉字获取拼音(php基于拼音搜索实现原理)
    Fatal error: Call to undefined function mb_detect_encoding()
    学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践
    springMVC介绍及配置
    Java--详解WebService技术
    网站SEO优化
    Java温故而知新(5)设计模式详解(23种)
    java温故而知新(9)OOP(面向对象编程)理念
  • 原文地址:https://www.cnblogs.com/dverdon/p/4573330.html
Copyright © 2011-2022 走看看