美文网首页
CMake总结

CMake总结

作者: 腩啵兔子 | 来源:发表于2017-04-21 16:03 被阅读278次

CMakeLists.txt

cmake_minimum_required (VERSION 2.8) cmake最低版本为2.8

project (Demo1) 项目的名称是Demo1

add_executable(Demo main.cc) 将main.cc的文件编译名成Demo的可执行文件

aux_source_directory(. DIR_SRCS) 将当前目录下的可执行文件放入变量DIR_SRCS中

add_executable(Demo ${DIR_SRCS}) 将DIR_SRCS中的文件编译名为Demo的可执行文件

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

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

add_library (MathFunctions ${DIR_LIB_SRCS}) 将DIR_LIB_SRCS中的文件编译成静态文件

include_directories ("${PROJECT_SOURCE_DIR}/math") 添加头文件的搜索路径,相当于指定gcc的-I参数

add_custom_command(
    TARGET armc-010 POST_BUILD
    COMMAND ${CMAKE_OBJCOPY} ./armc-010${CMAKE_EXECUTABLE_SUFFIX} -O binary ./kernel.img
    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
    COMMENT "Convert the ELF output file to a binary image" )

为一个目标(比如一个库文件或者可执行文件)加一条自定义命令。这种格式可以用于目标构建前或构建后的一些操作。这条命令会成为目标的一部分,并且只有目标被构建时才会执行。如果目标已经构建了,该目标将不会执行。如果指定了WORKING_DIRECTORY选项,这条命令会在给定的路径下执行。

内部变量

CMAKE_C_FLAGS: 编译C文件时的选项,如-g;也可以通过add_definitions添加编译选项
PROJECT_SOURCE_DIR: 项目顶层CMakeLists.txt所在路径, 也叫做CMAKE_SOURCE_DIR
PROJECT_BINARY_DIR: 执行cmake命令所在的路径,也叫做CMAKE_BINARY_DIR

DCMAKE_TOOLCHAIN_FILE

  • CMAKE_SYSTEM_NAME: 即你目标机target所在的操作系统名称,比如ARM或者Linux你就需要写"Linux",如果Windows平台你就写"Windows",如果你的嵌入式平台没有相关OS你即需要写成"Generic",只有当CMAKE_SYSTEM_NAME这个变量被设置了,CMake才认为此时正在交叉编译,它会额外设置一个变量CMAKE_CROSSCOMPILING为TRUE。
  • CMAKE_SYSTEM_PROCESSOR: 系统的CPU型号, CMake doesn't use this setting on a system it doesn't know.
  • CMAKE_C_COMPILER: 顾名思义,即C语言编译器,这里可以将变量设置成完整路径或者文件名,设置成完整路径有一个好处就是CMake会去这个路径下去寻找编译相关的其他工具比如linker,binutils等,如果你写的文件名带有arm-elf等等前缀,CMake会识别到并且去寻找相关的交叉编译器。

eg:

toolchain.cmake
CMakeLists.txt

相关文章

  • cmake使用

    tags: 嵌入式categories: 开发 cmake 总结 交叉编译 设置编译器CMAKE_FORCE_C_...

  • CMake总结

    CMakeLists.txt cmake_minimum_required (VERSION 2.8) cmake...

  • CMAKE 总结

    2016-5-30 cmake是要比makefile更加现代的一种工具. 这里就逐步总结一下cmake的用法. 首...

  • CMAKE 总结

    设置编译类型 自定义搜索规则 查找指定的库文件 find_library(VAR name path)查找到指定的...

  • Cmake使用总结

    即将步入工作,正在实习中.......感觉还是把学生时代的良好习惯带入工作之中......博客仅在工作之外记录,不...

  • CMake使用总结

    1.安装 $sudo apt-get install cmake 2.示例:简单的文件目录 sample |—...

  • Android:Cmake总结

    target_link_libraries有什么用? 用来配置编译需要依赖的预编译好的库参考:https://ju...

  • CMAKE问题总结

    CMAKE作为一个跨平台的编译工具,有很多优势,但由于需要手动写CMakeLists.txt文件,对工程人员的要求...

  • 跨平台编译的经验之谈--Xcode之旅

    在<<跨平台编译的经验之谈--cmake编译文件的一般方法>>一文中,总结了CMake编译文件CMakeLists...

  • 9.Ubuntu安装cmake

    一、安装cmake 在cmake官网下载cmake:https://cmake.org/download/ 我没有...

网友评论

      本文标题:CMake总结

      本文链接:https://www.haomeiwen.com/subject/zjydzttx.html