zoukankan      html  css  js  c++  java
  • CMake实践--操作

    ---<Cmake 实践>---

    ---Ubuntu 14.04

    1、创建一个cmake文件目录

    1 mkdir -p ~/cmake

    2、在cmake文件下创建t1子目录

    1 cd ~/cmake
    2 mkdir t1
    3 cd t1

    3、在t1子目录下创建main.c 和 CMakeLists.txt(注意:文件名大小写!)

    1 touch main.c
    2 touch CMakeListst.txt

    其中,main.c文件内容如下:

    打开main.c文件:

    gedit main.c
    1  //main.c
    2  
    3  #include<stdio.h>
    4  int main()
    5  {
    6      printf("Hello World from t1 Main!
    ");
    7      return 0;
    8  }

    其中,CMakeLists.txt内容如下:

    gedit CMakeLists.txt
    1 PROJECT(HELLO) #定义工程名称
    2 SET(SRC_LIST main.c) #SET指令用于显式定义变量
    3 MESSAGE(STATUS "This is BINARY dir" ${HELLO_BINARY_DIR}) #STATUS,输出前缀为-的信息
    4 MESSAGE(STATUS "This is SOURCE dir" ${HELLO_SOURCE_DIR})
    5 ADD_EXECUTABLE(hello ${SRC_LIST}) #工程生成一个文件名为hello的可执行文件

    另外,CMakeLists.txt可简化为:

    1 PROJECT(HELLO)
    2 ADD_EXECUTABLE(hello ,main.c)

    4、开始构建

    当main.c文件及CMakeLists.txt文件创建完成后,进行构建工程,在该目录下运行:

    1 cmake . (注意命令后面的点号,代表的是本目录)

    运行cmake . 指令后,在目录下,可以看到有CMakeFiles、CMakeCache.txt、cmake_install.cmake等文件,并生成了Makefile。

    之后,在该目录下输入:make 命令

    这时候,目标文件hello已经构建完成,位于当前目录,运行下述指令:

    ./hello

    得到输出:   Hello World from t1 Main!

    5、在cmake文件下创建t2目录

    将t1工程下的main.c 与 CMakeLists.txt 拷贝到t2目录下

    6、在目录t2下添加src文件夹

    1 cd ~/cmake/t2
    2 mkdir src
    3 mv main.c src

    7、在文件夹src下创建一个CMakeLists.txt,添加内容如下:

    ADD_EXECUTABLE(hello main.c)

    8、在t2目录下(原从t1中拷贝的)CMakeLists.txt修改为:

    1 PROJECT(HELLO)
    2 ADD_SUBDIRECTORY(src bin)

    9、在t2文件路径下,进行编译:

    1 cmake .
    2 make



  • 相关阅读:
    uva 11355(极角计算)
    hdu 1029(hash)
    hdu 1024(dp)
    SPOJ DISUBSTR(字符串hash)
    SPOJ DISUBSTR(后缀数组)
    【Leetcode】Evaluate Reverse Polish Notation
    【Leetcode】Reverse Words in a String
    【Leetcode】Maximum Product Subarray
    【Leedcode】Insertion Sort List
    【Leetcode】Sort List
  • 原文地址:https://www.cnblogs.com/LQLin168/p/6848300.html
Copyright © 2011-2022 走看看