Trantor
  • Introduction
  • Pinctrl Subsystem 与 GPIO Subsystem的交互
  • ION Memory Control
  • Gitbook-Cli Tutorial
  • Linux命令行解析函数getopt_long()
  • CMake in Action
    • CMake Tutorial
      • 使用CMake构建库
      • 查找已有库
      • CMake install
      • 交叉编译
      • SUMMARY
    • CMake Example
    • 如何建立自己的PackageConfig.cmake
    • CMake自定义内容
    • CPACK生成deb安装包
  • MQTT 3.1.1
    • Paho MQTT C Client Library Example
  • Loading shared library APIs dynamically
  • C++ Thread Pool
  • Linux平台下的动态链接库
  • C++种的动态内存分配:new和delete
  • C++ STL std::list探索
  • HTTP POST form-data return '400: Data Error.'
Powered by GitBook
On this page

Was this helpful?

  1. CMake in Action
  2. CMake Tutorial

SUMMARY

A brief summary of CMake Tutotial.

至此这篇关于CMake的简单指南就结束了,相信阅读完这几篇粗糙的文章你对CMake应该有了一个初步的了解,如引言所言,这些内容足以应付大多数的情况,但是假如你还想继续深入,那么我也尽可能地准备了一些improvment options,希望能帮到各位。但是我才疏学浅,如有纰漏之处,还请指出。

此外,我坚信study with example的正确性,所以接下来我将会花大量的精力完成cmake-example的翻译和更新。

其实这篇文章的组织或多或少偏离了我最初的设想,我并没有严格按照原文进行翻译,而是加入了一些具体功能的原理介绍,原本我想将这部分单独列出来,但是既然原文中出现了这些章节,那我觉得放在一起也未尝不可,虽然这在一定程度上增加了新手的阅读难度。待这本书彻底完成之后,我会抽出时间进行一次修订(但愿会有时间:))。

最后的最后,原文给出了几点关于实践的建议,希望能帮助到各位:

  • 始终记住前面的配置,确保是添加新标志而不是覆盖它:

    set(VARIABLE "${VARIABLE} Flag1 Flag2")

  • 始终记得仔细地检查系统信息,并添加对‘应的错误警告避免未知的构建错误。

  • 始终记得检查依赖,并添加对应的错误警告

    if(Boost_FOUND)
        message("Boost Found")
    else()
        error("Boost Not Found")
    endif()
  • 对于复杂的多模块项目,为避免目录冲突应尽量使用PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR。

  • 多阅读优秀的开源项目代码,从面向blog编程转向面向Wiki编程。

Previous交叉编译NextCMake Example

Last updated 3 years ago

Was this helpful?