zoukankan      html  css  js  c++  java
  • CMake 案例

    单个源文件

      

    # CMake 最低版本号要求
    cmake_minimum_required (VERSION 3.11)
    
    # 项目信息
    project (Demo)
    
    # 指定生成目标
    add_executable(Demo main.cc)

    cmake_minimum_required指定运行此配置文件所需的 CMake 的最低版本;

    project参数值是 Demo,该命令表示项目的名称是 Demo。

    add_executable 将名为 main.cc 的源文件编译成一个名称为 Demo 的可执行文件

    同一目录,多个源文件

      

    # CMake 最低版本号要求
    cmake_minimum_required (VERSION 3.11)
    
    # 项目信息
    project (Demo)
    
    # 查找当前目录下的所有源文件
    # 并将名称保存到 DIR_SRCS 变量
    aux_source_directory(. DIR_SRCS)
    
    # 指定生成目标
    add_executable(Demo ${DIR_SRCS})
    #或者:add_executable(Demo main.cc math_function.cc math_function.h)

     aux_source_directory: 查找指定目录下的所有源文件,然后将结果存进指定变量名.

    多个目录,多个源文件

      

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

    add_subdirectory指明本项目包含一个子目录 math,这样math目录下的文件才会被处理 

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

    Notepad案例

      

    • ./Notepad/CMakeLists.txt
    cmake_minimum_required(VERSION 3.11)
    
    PROJECT (Notepad)
    
    # Require "qa" and "xml" for debug report.
    if(MSVC)
        find_package(wxWidgets REQUIRED COMPONENTS core base qa xml)
    else()
        # Require "net" for create server/client between two instances.
        find_package(wxWidgets REQUIRED COMPONENTS core base net qa xml)
    endif()
    
    include(${wxWidgets_USE_FILE})
    
    set(Boost_USE_STATIC_LIBS ON)
    
    find_package(Boost)
    
    if(Boost_FOUND)
        include_directories(${Boost_INCLUDE_DIRS})
    endif()
    
    include_directories(${PROJECT_SOURCE_DIR}/src)
    
    add_subdirectory(src)
    • ./Notepad/src/CMakeLists.txt
    add_subdirectory(notepad)
    • ./Notepad/src/notepad/CMakeLists.txt
    aux_source_directory(. DIR_SRCS)
    
    set(TARGET_NAME notepad)
    
    add_executable(${TARGET_NAME} WIN32 ${DIR_SRCS})
    
    target_link_libraries(${TARGET_NAME} ${wxWidgets_LIBRARIES})
  • 相关阅读:
    我用柔软打败你
    【记录】ASP.NET URL 特殊字符
    再次记录 Visual Studio 2015 CTP 5 的一个坑
    【记录】ASP.NET MVC View 移动版浏览的奇怪问题
    升级 Visual Studio 2015 CTP 5 的坑、坑、坑
    OWIN 中 K Commands 与 OwinHost.exe 相等吗?
    OWIN 中 K Commands(OwinHost.exe)与 Microsoft.AspNet.Hosting 的角色问题
    深入理解 OWIN 中的 Host 和 Server
    【续集】在 IIS 中部署 ASP.NET 5 应用程序遭遇的问题
    delete
  • 原文地址:https://www.cnblogs.com/zhanghu52030/p/9145103.html
Copyright © 2011-2022 走看看