• 43 编译原理及cmake使用手册学习


    0 引言

    大量开源库需要通过cmake编译后使用,了解cmake的基本指令以及CMakeLists.txt的写法非常重要,其基础是了解编译原理。另外,为了对cmake编译的代码进行调试,需要了解CMakeList.txt的写法。本文将对这些关键问题进行探讨,并记录一些关键点。

    参考了如下链接。

    https://blog.csdn.net/wzzfeitian/article/details/40963457/  # cmake使用示例与整理总结
    
    https://cmake.org/cmake/help/v3.3/command/target_link_libraries.html  #  cmake official documentation

    # cmake相关的教程
    https://tuannguyen68.gitbooks.io/learning-cmake-a-beginner-s-guide/content/chap1/chap1.html

    1 cmake编译原理

    cmake通过指定源文件、外部include文件、 静态链接库(.a/.lib)文件、动态链接库(.so/.dll)文件的路径,以及生成文件的路径,将整个程序有序地组织起来,最终达到生成可执行程序的目的。

    2 cmake commands(常用)

    1)cmake中的指令对大小写不敏感。
    (2)PROJECT(project):工程名,一般采用最上层文件夹名 
    (3)ADD_SUBDIRECTORY(add_subdirectory):附加目录名,一般为src的目录,在文件比较多的时候采用
    (4)LINK_DIRECTORIES (link_directories):静态链接库目录,供linker(链接器)使用
    (5)ADD_EXECUTABLE (add_executable):可执行文件
    (6)INCLUDE_DIRECTORIES(include_directories): .h头文件
    (7)TARGET_LINK_LIBRARIES(target_link_libraries): .so文件,格式是 target_link_libraries(可执行文件名  链接库地址及文件)
      写法为:以libboost_system.so.1.58.o 为例 “-lboost_system”

    3 cmake预定义变量

    $PROJECT_SOURCE_DIR$ : 工程的根目录
    $PROJECT_BINARY_DIR$ : 运行cmake命令的目录,通常是${PROJECT_SOURCE_DIR}/build

    4 cmake的CMakeLists.txt语法

    常用变量的意义解释都有,链接如下。

    https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/Useful-Variables

     5 cmake参数运用

    (1)区分debug和release的方法: 

    点击Add Entry添加   Name:    CMAKE_DEBUG_POSTFIX 、Type:    STRING 、Value:-gd、Description:空

  • 相关阅读:
    mysql高可用架构的构想
    shell进阶——expect免交互工具的使用
    Mysql性能优化之参数配置(转)
    mysql主从同步问题梳理
    使用mysql-proxy实现mysql的读写分离
    Mysql数据库的主从与主主
    Mariadb远程登陆配置及相关问题排查
    redis集群搭建及常用操作
    weblogic的linux静默搭建
    Python traceback 模块,追踪错误
  • 原文地址:https://www.cnblogs.com/ghjnwk/p/10431432.html
Copyright © 2020-2023  润新知