zoukankan      html  css  js  c++  java
  • 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:空

  • 相关阅读:
    启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法!
    处理textarea的空格和换行
    微信内置页实现自动拨号到页面的功能
    兼容ie的渐变css
    H5压缩图片上传(FileReader +canvas)
    css样式写一个小三角
    js禁止选中图片和文字
    js解决浏览器打印自动分页的问题
    IE8透明度问题
    在css加载完毕后自动判断页面是否加入css或js文件
  • 原文地址:https://www.cnblogs.com/ghjnwk/p/10431432.html
Copyright © 2011-2022 走看看