美文网首页
第一篇 一个简单的入口

第一篇 一个简单的入口

作者: paresly | 来源:发表于2018-06-10 11:44 被阅读9次

背景

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

准备

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


文档路径

开始

  • 创建一个CMakeLists.txt的文档,并填这些内容:
cmake_minimum_required(VERSION 2.6)  #依赖的cmake版本
project(Tutorial)                    #项目名称
add_executable(Tutorial tutorial.cpp) #关联代码名称
  • 对应的,添加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会更加灵活。首先,cmake文件需要改成这样:
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) #关联代码名称
  • 添加一个TutorialConfig.h.in的文件
#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;
}
  • 最后,在命令行执行cmake语句 “cmake step1” 注意cmd路径。

  • 运行完成,发现文件夹更新了。


    结果
  • 现在,我们就可以用VS打开sln文件,进行代码编辑了。

相关文章

网友评论

      本文标题:第一篇 一个简单的入口

      本文链接:https://www.haomeiwen.com/subject/nddfeftx.html