Cmake 01
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的更多相关文章
- 一起学习CMake – 01
一起学习CMake – 01 本节介绍CMake里最常用的三个命令,分别是cmake_minimum_required; project; add_executable等. CMake是个好东西,在使 ...
- 一起学习CMake – 02
本节介绍如何用CMake来设置软件的版本号 在<一起学习CMake - 01>中我们看到了如何用CMakeLists.txt来构建一个最简单的工程,这一节里我们一起来看看如何用CMake对 ...
- [转] CMake
转载地址:https://www.cnblogs.com/lidabo/p/7359422.html cmake 简介 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装( ...
- cmake使用方法详解
cmake 简介 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性 ...
- 在 linux 下使用 CMake 构建应用程序
学习cmake http://xwz.me/wiki/doku.php?id=cmake 碰到的一些问题: 1.You have changed variables that require your ...
- CMake使用hellocmake&&make的使用
2016-12-11 20:38:32 已经知道cmake这个东西很长的时间了,一直没有试验过,知道它是一个编译工具,在opencv和Linux下都有makefile的内容.感觉现在对源码的编译有 ...
- 在 linux 下使用 CMake 构建应用程序【转】
本文转载自:https://www.ibm.com/developerworks/cn/linux/l-cn-cmake/index.html CMake 简介 CMake 是一个跨平台的自动化建构系 ...
- cmake入门:01 构建一个简单的可执行程序
一.目录结构 CMakeLists.txt:cmake 工程入口文件,包含当前目录下的工程组织信息.cmake 指令根据此文件生成相应的 MakeFile 文件. Hello.c: 源代码文件 bui ...
- CMake使用教程
转自 RichardXG 原文 CMake使用教程 CMake是一个比make更高级的编译配置工具,它可以根据不同平台.不同的编译器,生成相应的Makefile或者vcproj项目. 通过编写CMak ...
随机推荐
- jq方法(end)
.end()方法: 使得结果集可以后退一步 $('div') .find('h3') .eq() .html('hello') .end()//退回到选中所有的h3元素的那一步 .eq()//选中第一 ...
- p标签text-align:justify以及CSS文字两端对齐
p标签样式添加text-align:justify; 那么就会左右对齐. 使用前: 使用后: CSS文字两端对齐 使用前: 代码: <style> div{ width:100px; he ...
- esper(4-1)-简单context
1.创建context语法 create context context_name partition [by] event_property [and event_property [and ... ...
- c++从txt中读取数据,数据并不是一行路径(实用)
#include <iostream>#include <fstream>#include <string> using namespace std; //输出空行 ...
- hxq的库
在页面中使用 可以调取html模板 /** * Created by DY040 on 2017/10/31. */ var hxq = { init: function () { var self ...
- my.资料
领回梦丹 http://ka.gamedog.cn/card/2036517.html 1. 普陀的加点没有优点缺点之分,只有是否和你的装备般配.这里可以给一些小数据参考. 60级物理防御达到900, ...
- STlink及烧写工具:
一 STLINK可以随时在STLINK与jlink之间切换:方法:https://www.segger.com/products/debug-probes/j-link/models/other-j- ...
- 彻底理解和解决移动WEB开发中CLICK点透问题
在移动WEB开发中,有时候可能会出现点透问题,本文将围绕这个TAP点透问题,详细的讲述到底什么是点透,为什么会出现点透,如何避免出现点透,如果不可避免的出现了,如何解决解决移动WEB开发中CLICK点 ...
- IOS Intro - UIWindow UIView and CALayer
UIWindow.UIView以及CALayer之间的关系2016-05-11 20:46 本站整理 浏览(16) UIWindow1.简介UIWindow是一种特殊的UIView,通常在一个app中 ...
- PHP编码的规范性
为了提高工作效率,保证开发的有效性和合理性,并最大程度提高程序代码的可读性和可重复利用性,提高沟通效率,需要一份代码编辑规范. 一.文件标记: 1.所有 ...