• 初步学习CMake的使用


    初步学习CMake的使用

    转自:

    http://hi.baidu.com/%D4%B6%B9%C5%B5%A5%CE%BB/blog/item/29888288267e5f90a5c27270.html

    这几天研究了一下CMake,因为感觉在之后的开发中,我们终有一天需要这个工具。

    CMake

    Cmake 不再使你在构建项目时郁闷地想自杀了.   --一位KDE开发者。

    1,背景知识:
        cmake 是 kitware 公司以及一些开源开发者在开发几个工具套件(VTK)的过程中衍生品,最终形成体系,成为一个独立的开放源代码项目。项目的诞生时间是 2001 年。其官方网站是 www.cmake.org,可以通过访问官方网站获得更多关于 cmake 的信息。cmake的流行其实要归功于 KDE4 的开发(似乎跟当年的 svn 一样,KDE 将代码仓库从 CVS 迁移到SVN,同时证明了 SVN 管理大型项目的可用性),在 KDE 开发者使用了近 10 年 autotools之后,他们终于决定为 KDE4 选择一个新的工程构建工具,其根本原因用 KDE 开发者的话来说就是:只有少数几个“编译专家”能够掌握 KDE 现在的构建体系(admin/Makefile.common),在经历了 unsermake, scons 以及cmake 的选型和尝试之后,KDE4 决定使用 cmake 作为自己的构建系统。在迁移过程中,进展异常的顺利,并获得了 cmake 开发者的支持。所以,目前的 KDE4 开发版本已经完全使用 cmake 来进行构建。像kdesvn,rosegarden 等项目也开始使用 cmake,这也注定了 cmake 必然会成为一个主流的构建体系。

    2,特点
    cmake的特点主要有:
    1, 开放源代码(BSD许可证)。2, 跨平台。3, 能够管理大型项目。4, 简化编译构件过程和编译过程。5, 高效率。6, 可扩展。

    3,安装cmake
    在ubuntu下直接 sudo apt-get install cmake,我装的cmake的版本是2.4-patch 6, ubuntu版本7.04

    4, 简单使用
    建立一个临时目录 mkdir -p cmake/t1 && cd cmake/t1, 在这个文件夹下写一个最简单的程序main.c。
    main.c 文件内容:
    //main.c
    #include 
    <stdio.h>
    int main()
    {
         printf("Hello World from t1 Main!\n");
         return 0;
    }
    在它的同级目录下写一个文件,文件名是CMakeLists.txt(注意文件名大小写),CMakeLists.txt的内容是:
    PROJECT (HELLO)
    SET(SRC_LIST main.c)
    MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR})
    MESSAGE(STATUS "This is SOURCE dir "${HELLO_SOURCE_DIR})
    ADD_EXECUTABLE(hello ${SRC_LIST})

    CMakeLists.txt,脚本内容如下
            #标识我们项目的名称
             PROJECT(my_project)
             #添加glib的include路径
             INCLUDE_DIRECTORIES(/usr/include/glib)
             #将common目录的所有文件名写到名为common_var的变量中去
           AUX_SOURCE_DIRECTORY(common common_var)
             # 将main.c main.h添加到PROJECT_FILE变量中
             SET(PROJECT_FILE main.c main.h)
             # 将common_var变量和PROJECT_FILE变量的内容放到ALL_FILE变量中去
             SET(ALL_FILE ${PROJECT_FILE} ${common_var})
             #根据ALL_FILE来生成可执行文件bt_server
             add_executable (bt_server ${ALL_FILE})
             #链接动态链接库libglib2.0.so和libpthread.so
             target_link_libraries(bt_server libglib-2.0.so libpthread.so)

            恩,编译脚本就这样写完了,简单吧。
            下面的步骤更简单
            在你的project下面建立一个目录,目录名叫build #随便你写什么名字都好,不过推荐用build,显得正规一些:)

             进入终端,然后敲击命令 cmake..     #千万要记得后面的两个点。这表示CMakeLists.txt文件存放在上级目录下

            如果cmake成功,你会看到build目录下生成一个makefile文件。此时在终端下敲击make.你的工程就会被编译成可执行文件.


    4.1, 开始构件
    在这个工程下运行cmake . (. 代表本目录)
    然后就会生成这个文件的makefile.
    之后运行 make,就可以生成hello程序了。
  • 相关阅读:
    Sharepoint 2010 无法上传文件的问题
    复杂领域的Cynefin模型和Stacey模型
    SCOM Visio监控 与sharepoint 2010 整合
    HillStone上网认证客户端
    jQuery插件手把手教会(二)
    jQuery插件手把手教会(一)
    jQuery+css+div--一些细节详解
    jQuery+css+div一些值得注意的常用语句
    找不到对应的webservice配置参数[ProcessService]
    NC保存报dirty解决方法
  • 原文地址:https://www.cnblogs.com/SunWentao/p/1315201.html
Copyright © 2020-2023  润新知