1. sdsf(single direction single file)

  1.1  The directory tree

/*
./template
|
+--- build
|
+---main.cpp
|
+---CMakeLists.txt
*/

  1.2 Sources code

 //  main.cpp

 #include <iostream>
using namespace std; int main(int argc, char **argv) {
std::cout << "Hello, world!" << std::endl;
return ;
} //CMakeLists.txt cmake_minimum_required(VERSION 2.6) //------The minimum version required---//
project(template) //------The project information-----// add_executable(template main.cpp) //-----Build Target------// install(TARGETS template RUNTIME DESTINATION bin)

  1.3 Compile All

 cd build
cmake ..
make

2. Single direct Multi- files

2.1 The directory tree

/*
./template
|
+--- build/
|
+---main.cpp
|
+---a.cpp
|
+---CMakeLists.txt
*/

  2.2 Sources Code

  //  main.cpp

#include <iostream>
#include "a.h"
using namespace std; int main(int argc, char **argv) { display();
std::cout << "Hello, world!" << std::endl;
return ;
} // a.cpp #include "a.h"
using namespace std; void display(void)
{
cout << "I'm in a.cpp"<< endl; } // a.h #ifndef A_H_
#define A_H_ #include <iostream>
void display(void);
#endif //CMakeLists.txt cmake_minimum_required(VERSION 2.6) //------The minimum version required---//
project(template) //------The project information-----// add_executable(template main.cpp a.cpp) //-----Build Target------// install(TARGETS template RUNTIME DESTINATION bin)

only add a.cpp in add_executable ,and there is a accepted way----used command  aux_source_directory

// CMakeLists

cmake_minimum_required(VERSION 2.6)
project(template)
aux_source_directory(./ allfiles) // The current dir
add_executable(template ${allfiles}) install(TARGETS template RUNTIME DESTINATION bin)

3. Multi dir Multi files

  3.1 dir tree

/*
./template
|
+--- build/
|
+---src/
|
+---b.cpp
|
+---CMakeLists
|
+---main.cpp
|
+---a.cpp a.h
|
+----b.h
|
+---CMakeLists.txt
*/

  3.2 Sources Code

// main.cpp

#include <iostream>
#include "a.h"
#include "b.h" using namespace std; int main(int argc, char **argv) { display();
DisplayInFileb();
std::cout << "Hello, world!" << std::endl;
return ;
} //a.cpp #include "a.h"
using namespace std; void display(void)
{
cout << "I'm in a.cpp"<< endl; } // b.cpp #include "b.h"
using namespace std;
void DisplayInFileb(void)
{
cout << "I'm in file b" << endl;
} // CMakeLists in src
aux_source_directory(./ AllfilesInSrc)
add_library(SrcFile ${AllfilesInSrc}) //CMakeLists in template
cmake_minimum_required(VERSION 2.6)
project(template)
aux_source_directory(./ allfiles)
add_subdirectory(src)
add_executable(template ${allfiles})
target_link_libraries(template SrcFile) install(TARGETS template RUNTIME DESTINATION bin)

  3.3 compile all

 cd build
cmake ..
make ./template I'm in a.cpp
I'm in file b
Hello, world!

Cmake 01的更多相关文章

  1. 一起学习CMake – 01

    一起学习CMake – 01 本节介绍CMake里最常用的三个命令,分别是cmake_minimum_required; project; add_executable等. CMake是个好东西,在使 ...

  2. 一起学习CMake – 02

    本节介绍如何用CMake来设置软件的版本号 在<一起学习CMake - 01>中我们看到了如何用CMakeLists.txt来构建一个最简单的工程,这一节里我们一起来看看如何用CMake对 ...

  3. [转] CMake

    转载地址:https://www.cnblogs.com/lidabo/p/7359422.html cmake 简介 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装( ...

  4. cmake使用方法详解

    cmake 简介 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性 ...

  5. 在 linux 下使用 CMake 构建应用程序

    学习cmake http://xwz.me/wiki/doku.php?id=cmake 碰到的一些问题: 1.You have changed variables that require your ...

  6. CMake使用hellocmake&&make的使用

    2016-12-11   20:38:32 已经知道cmake这个东西很长的时间了,一直没有试验过,知道它是一个编译工具,在opencv和Linux下都有makefile的内容.感觉现在对源码的编译有 ...

  7. 在 linux 下使用 CMake 构建应用程序【转】

    本文转载自:https://www.ibm.com/developerworks/cn/linux/l-cn-cmake/index.html CMake 简介 CMake 是一个跨平台的自动化建构系 ...

  8. cmake入门:01 构建一个简单的可执行程序

    一.目录结构 CMakeLists.txt:cmake 工程入口文件,包含当前目录下的工程组织信息.cmake 指令根据此文件生成相应的 MakeFile 文件. Hello.c: 源代码文件 bui ...

  9. CMake使用教程

    转自 RichardXG 原文 CMake使用教程 CMake是一个比make更高级的编译配置工具,它可以根据不同平台.不同的编译器,生成相应的Makefile或者vcproj项目. 通过编写CMak ...

随机推荐

  1. jq方法(end)

    .end()方法: 使得结果集可以后退一步 $('div') .find('h3') .eq() .html('hello') .end()//退回到选中所有的h3元素的那一步 .eq()//选中第一 ...

  2. p标签text-align:justify以及CSS文字两端对齐

    p标签样式添加text-align:justify; 那么就会左右对齐. 使用前: 使用后: CSS文字两端对齐 使用前: 代码: <style> div{ width:100px; he ...

  3. esper(4-1)-简单context

    1.创建context语法 create context context_name partition [by] event_property [and event_property [and ... ...

  4. c++从txt中读取数据,数据并不是一行路径(实用)

    #include <iostream>#include <fstream>#include <string> using namespace std; //输出空行 ...

  5. hxq的库

    在页面中使用 可以调取html模板 /** * Created by DY040 on 2017/10/31. */ var hxq = { init: function () { var self ...

  6. my.资料

    领回梦丹 http://ka.gamedog.cn/card/2036517.html 1. 普陀的加点没有优点缺点之分,只有是否和你的装备般配.这里可以给一些小数据参考. 60级物理防御达到900, ...

  7. STlink及烧写工具:

    一 STLINK可以随时在STLINK与jlink之间切换:方法:https://www.segger.com/products/debug-probes/j-link/models/other-j- ...

  8. 彻底理解和解决移动WEB开发中CLICK点透问题

    在移动WEB开发中,有时候可能会出现点透问题,本文将围绕这个TAP点透问题,详细的讲述到底什么是点透,为什么会出现点透,如何避免出现点透,如果不可避免的出现了,如何解决解决移动WEB开发中CLICK点 ...

  9. IOS Intro - UIWindow UIView and CALayer

    UIWindow.UIView以及CALayer之间的关系2016-05-11 20:46 本站整理 浏览(16) UIWindow1.简介UIWindow是一种特殊的UIView,通常在一个app中 ...

  10. PHP编码的规范性

         为了提高工作效率,保证开发的有效性和合理性,并最大程度提高程序代码的可读性和可重复利用性,提高沟通效率,需要一份代码编辑规范.         一.文件标记:            1.所有 ...