第一篇 一个简单的入口

2018-06-10  本文已影响9人  paresly

背景

对于代码工程来讲,最基本的就是由代码文件编译组成的可执行文件。对于一些简单到只有一个文件的代码工程而言,两行的CMakeLists文件就足够了。我们第一接触cmake文件,就从这里开始了。

准备

为了便于管理,还是先确定路径吧,在D盘里创建了一个叫cmake_tutorial的文件夹。在这个文件夹里,创建step1的文件夹,本篇的内容放在这个文件夹里。


文档路径

开始

cmake_minimum_required(VERSION 2.6)  #依赖的cmake版本
project(Tutorial)                    #项目名称
add_executable(Tutorial tutorial.cpp) #关联代码名称
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc,char *argv[])
{
    if(argc < 2)
    {
        fprintf(stdout,"Usage:%s number\n",argv[0]);
        return 1;
    }

    double inputValue = atof(argv[1]);
    double outputValue = sqrt(inputValue);
    fprintf(stdout,"The square root of %g is %g\n",
        inputValue,outputValue);

    return 0;
}

执行完这些以后,基本就可以利用cmake来生成代码工程了,在命令行里,切换到cmake_tutorial路径,输入这样的语句:

cmake step1

命令行里出现了这样的语句。


cmake step1 再看一下路径。 step1工程

生成了Tutorial项目工程,这样的工程可以直接在VS里面打开。

好了,基本的创建流程就是这样子,但是大部分的情况下,代码都不是一个文件可以搞定的。如何添加多个文件,这里以C++为例,添加一个包含版本信息.h头文件。

cmake_minimum_required(VERSION 2.6)  #依赖的cmake版本
project(Tutorial)                    #项目名称
set (Tutorial_VERSION_MAJOR 1)
set (Tutorial_VERSION_MINOR 0)

configure_file(
    "${PROJECT_SOURCE_DIR}/TutorialConfig.h.in"
    "${PROJECT_BINARY_DIR}/TutorialConfig.h"
)
include_directories("${PROJECT_BINARY_DIR}")
add_executable(Tutorial tutorial.cpp) #关联代码名称
#define Tutorial_VERSION_MAJOR @Tutorial_VERSION_MAJOR@
#define Tutorial_VERSION_MINOR @Tutorial_VERSION_MINOR@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "TutorialConfig.h"

int main(int argc,char *argv[])
{
    if(argc < 2)
    {
        fprintf(stdout,"%s Version %d.%d\n",
        argv[0],
        Tutorial_VERSION_MAJOR,
        Tutorial_VERSION_MINOR);
        fprintf(stdout,"Usage:%s number\n",argv[0]);
        return 1;
    }

    double inputValue = atof(argv[1]);
    double outputValue = sqrt(inputValue);
    fprintf(stdout,"The square root of %g is %g\n",
        inputValue,outputValue);

    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读