cmake实战第二篇:让我们的代码更像个工程
为工程添加以下文件夹:
lib 用来放编译好的库文件。
include 用来放头文件。
sudo mkdir -p /code_test/cmake
cd /code_test/cmake
sudo mkdir p2
cd p2
sudo mkdir bin src lib include
touch CMakeLists.txt //要把目录结构告诉cmake。所以在代码根目录下写一个CMakeLists.txt。cmake在生成代码时,会读这个文件,并按照它来编译你的代码。
在src目录下建个main.cpp文件
//main.cpp文件
#include <iostream>
using namespace std;
int main(int argc, char**argv)
{
cout<<"Hello Cmake!"<<endl;
return ;
}
//src目录下的CMakeLists.txt:
ADD_EXECUTABLE( main main.cpp )
//根目录下的CMakeLists.txt:
CMAKE_MINIMUM_REQUIRED( VERSION 2.8 ) #设定版本
PROJECT( HELLO)
SET( CMAKE_CXX_COMPILER "g++") #设定编译器
SET( EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) #设定存放编译出来的库文件的目录
SET( LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) #并且把该目录设为连接目录
LINK_DIRECTORIES( ${PROJECT_SOURCE_DIR}/lib) #设定头文件目录
INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/include) #增加子文件夹,也就是进入源代码文件夹继续构建
ADD_SUBDIRECTORY( ${PROJECT_SOURCE_DIR}/src)
编译:
mkdir build
cd build
cmake ..
make
到bin文件夹下
cd ..
cd bin
运行:
./main
cmake实战第二篇:让我们的代码更像个工程的更多相关文章
- cmake实战第一篇:初试 cmake
1.准备工作: 首先,在/code_test 目录下建立一个 cmake 目录,用来放置我们学习过程中的所有练习.(如果以下命令出现xxx: cannot create directory ‘x’: ...
- Docker实战 | 第二篇:IDEA集成Docker插件实现一键自动打包部署微服务项目,一劳永逸的技术手段值得一试
一. 前言 大家在自己玩微服务项目的时候,动辄十几个服务,每次修改逐一部署繁琐不说也会浪费越来越多时间,所以本篇整理通过一次性配置实现一键部署微服务,实现真正所谓的一劳永逸. 二. 配置服务器 1. ...
- vue-element-admin实战 | 第二篇: 最小改动接入后台实现根据权限动态加载菜单
一. 前言 本篇基于 有来商城 youlai-mall微服务项目,通过对vue-element-admin的权限菜单模块理解个性定制其后台接口,实现对vue-element-admin工程几乎不做改动 ...
- SpringCloud实战 | 第二篇:SpringCloud整合Nacos实现注册中心
前言 随着eureka的停止更新,如果同时实现注册中心和配置中心需要SpringCloud Eureka和SpringCloud Config两个组件;配置修改刷新时需要SpringCloud Bus ...
- Apriori算法第二篇----详细分析和代码实现
1 Apriori介绍 Apriori算法使用频繁项集的先验知识,使用一种称作逐层搜索的迭代方法,k项集用于探索(k+1)项集.首先,通过扫描事务(交易)记录,找出所有的频繁1项集,该集合记做L1,然 ...
- 第二篇--上传git 代码
准备工作: 首先,注册一个GitHub账号. 接着,新建一个仓库. 最后,下载Git 上传代码步骤: 第一步,新建一个本地文件夹作为本地仓库,进入该文件夹. 右击选择Git Bash Here ,输入 ...
- Python进阶【第二篇】编写Python代码
一.第一句Python代码——Hello Word 在 /home/dev/ 目录下创建 hello.py 文件,内容如下: print "hello,world" 执行 hell ...
- spring boot实战(第二篇)事件监听
http://blog.csdn.net/liaokailin/article/details/48186331 前言 spring boot在启动过程中增加事件监听机制,为用户功能拓展提供极大的便利 ...
- Spring Cloud实战 | 最终篇:Spring Cloud Gateway+Spring Security OAuth2集成统一认证授权平台下实现注销使JWT失效方案
一. 前言 在上一篇文章介绍 youlai-mall 项目中,通过整合Spring Cloud Gateway.Spring Security OAuth2.JWT等技术实现了微服务下统一认证授权平台 ...
随机推荐
- 《深入浅出pig系列之中的一个》pig-0.12.0-cdh5.1.2的安装与执行
这里使用的版本号是cdh发行的pig-0.12.0-cdh5.1.2 下载地址点这里 1.Pig简单介绍: Pig是yahoo捐献给apache的一个项目.它是SQL-like语言.是在MapRedu ...
- unity3d中布娃娃系统
原地址:http://blog.csdn.net/pizi0475/article/details/9771941 转自: http://forum.mirax.com.tw/unity/viewto ...
- 2015 ICPC 沈阳站M题
M - Meeting Time Limit:6000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit ...
- linux修改密码出现Authentication token manipulation error的解决办法
转自 :http://blog.163.com/junwu_lb/blog/static/1916798920120103647199/ Authentication token manipulati ...
- 2 自己编写:AppDelegate,CCApplication,CCApplicationProtocol
1 CCApplicationProtocol.h /* * CCApplicationProtocol.h * * Created on: 2014年10月19日 * Author: t ...
- javascript对于0的解读
CreateTime--2017年6月29日10:36:01Author:Marydon javascript对于0的解读 1.0与“0” 1.1 判断0与"0"是否相等 测试 ...
- android实现超酷的腾讯视频首页和垂直水平网格瀑布流一揽子效果
代码地址如下:http://www.demodashi.com/demo/13381.html 先来一波demo截图 实现ListView.GridView.瀑布流 1.导入RecyclerView的 ...
- 用nodepad++生成导入数据的SQL
在工作中经常要往数据库里导入数据,如果是在本地,可以用SQL SERVER自带的工具 直接往表里导入或者 用ssis 导入 线上的数据库由dba负责,作为开发不能直接操作,需要程序员来生成sql语句, ...
- C# 取字符串中间文本 取字符串左边 取字符串右边
好像是第二种效率高一点,取str字符串中123左边的所有字符:第一种Between(str,"","123"),而第二种是Between(str,null,&q ...
- web前端规范
无论是从技术角度还是开发视角,对于web前端开发规范文档都有一定规范,本文就css3和html5的发展前景总结了一系列的web开发文档,仅供大家参考. 规范目的:为提高团队协作效率, 便于后台人员添加 ...