zoukankan      html  css  js  c++  java
  • cmake处理多源文件目录的方法

    cmake处理源代码分布在不同目录中的情况也很简单,现在假设我们的源代码分布情况如下:

    源代码的分布情况


    其中src目录下的文件要编译成一个链接库

    第一步,项目主目录中的CMakelist.txt

    在目录step2中创建文件CMakelist.txt文件内容如下:

    目录 step2 中的 CMakeLists.txt
    1 PROJECT(main)
    2 CMAKE_MINIMUM_REQUIRED(VERSION 2.6) 
    3 ADD_SUBDIRECTORY( src )
    4 AUX_SOURCE_DIRECTORY(. DIR_SRCS)
    5 ADD_EXECUTABLE(main ${DIR_SRCS}  )
    6 TARGET_LINK_LIBRARIES( main Test )

    相对于上一篇中单个文件的Cmakelist.txt,这个多个源文件的Cmakelist.txt添加了一下的内容:

    第三行,使用命令ADD_SUBDIRECTORY指明本项目包含一个子目录src。

    第六行,使用命令 TARGET_LINK_LIBRARIES指明可执行文件main需要连接一个名为Test的链接库

    第二步,子目录中的CmakeLists.txt

    在子目录中src中创建CmakeLists.txt文件内容如下:

    1 AUX_SOURCE_DIRECTORY(. DIR_TEST1_SRCS)
    2 ADD_LIBRARY ( Test ${DIR_TEST1_SRCS})

    在该文件中使用ADD_LIBRARY将src目录中的源文件编译为共享库

    第三步,执行cmake

    至此我们完成了项目所有CMAkelists.txt文件的编写,进入目录step2中依次执行命令 “cmake  .”he "make"得到如下结果:

    处理多源文件目录时 cmake 的执行结果

    在执行cmake的过程中,首先解析目录step2中的CMakeList.txt,当程序执行命令ADD_SUBDIRECTORY(src)时,进入目录src对其中的CMakeLists.txt进行解析

    参考文献:http://www.ibm.com/developerworks/cn/linux/l-cn-cmake/

  • 相关阅读:
    [CTF]zip伪加密
    Node.js躬行记(5)——定时任务的调试
    不一样的资产安全 3D 可视化平台
    冬季里有温度的 3D 可视化智慧供热系统
    公路项目建设可视化进度管理
    ElementUI时间选择控件提交的时间为UTC时间
    Orcal创建触发器
    Orcal常用查询实例集合
    代码优化风格分享
    查某月的天数
  • 原文地址:https://www.cnblogs.com/fnlingnzb-learner/p/7202236.html
Copyright © 2011-2022 走看看