Ubuntu下Cmake编译C++程序Helloworld
时间:2019-12-14
本文章向大家介绍Ubuntu下Cmake编译C++程序Helloworld,主要包括Ubuntu下Cmake编译C++程序Helloworld使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1、首选新建工程目录
mkdir helloworld
2、新建文件目录
cd helloworld mkdir bin mkdir lib mkdir src mkdir include mkdir build touch CMakeLists.txt
执行命令之后的工程目录:
3、进入Src目录,新建源文件
cd src touch main.cpp touch helloworld.cpp
4、返回上级目录,进入include目录,新建头文件
cd ../include/ touch helloworld.h
5、对源文件和头文件进行编写并保存
// main.cpp #include <helloworld.h> int main() { helloworld obt; obt.outputWord(); return 0; } // helloworld.cpp #include "helloworld.h" void helloworld::outputWord() { std::cout << "hello world!" << std::endl; } // helloworld.h #ifndef HELLOWORLD_H_ #define HELLOWORLD_H_ #include <iostream> class helloworld { public: void outputWord(); }; #endif
结果如下图:
6、编写CMakeLists.txt文件
①cmake最低版本以及工程名称
cmake_minimum_required(VERSION 2.8) project(helloworld)
②设置编译方式(“debug”与“Release“)
SET(CMAKE_BUILD_TYPE Release)
③设置可执行文件与链接库保存的路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
④设置头文件目录使得系统可以找到对应的头文件
include_directories( ${PROJECT_SOURCE_DIR}/include )
⑤选择需要编译的源文件,凡是要编译的源文件都需要列举出来
add_executable(helloworld src/helloworld.cpp src/main.cpp)
结果如下图:
7、编译程序
cd build cmake .. make
8、查看编译结果
9、运行程序
./../bin/helloworld
运行结果如下图:
原文地址:https://www.cnblogs.com/haijian/p/12039160.html
- SVN+Apache域用户认证配置方法_Windows(转,重新排版,部分内容更新优化)
- sum(x) over( partition by y ORDER BY z ) 分析
- Android DataBinding 数据绑定
- Flask拾遗笔记之上下文
- switch.....case....使用最容易犯错的地方
- electron 构建跨平台桌面应用
- 两个关于字符串的经典例子
- Android Wear 开发初探
- Android动态布局入门及NinePatchChunk解密
- WebAssembly
- 使用 Jest 进行前端单元测试
- Android Auto开发初探
- 把好方法参数的大门
- OpenSL ES那些事
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 编程体系结构(06):Java面向对象
- RabbitMQ在分布式系统中的应用
- spring5新特性
- 进阶!MyBatis-Plus(基于 Springboot 演示)
- 运维人员常用的Linux命令总结
- Java反射机制的原理及在Android下的简单应用
- 温故而知新:MySQL存储引擎入门介绍
- 终于明白 Java 为什么要加 final 关键字了!
- 学习git这一篇就够了!!!
- 如何在nodejs中实现兄弟进程通信
- Python异常处理
- Python装饰器实现函数动态类型检查
- 如何自动填充SQL语句中的公共字段
- 面试官喜欢问的Java编译期与运行期问题总结全了
- 面试5年25K程序员回答不出来为什么Java的main方法必须是public static void?