c c 语言编程项目实例,实例分享cmake编译一个简单c++项目(demo)
实例分享cmake编译一个简单c++项目(demo)
发布时间:2020-09-19 21:08:04
来源:脚本之家
阅读:63
作者:mdxy-dxy
下面通过一个小例子来说明cmake编译一个c++项目,生成可执行文件:
整理目录结构:
CMake Lists.txt addlib build main.cpp
电脑上没有tree命令,也不大敢截图,将就着看看,其中build是cmake编译指定的路径,addlib下面也有一个头文件和源文件 ,还有一个CmakeLists.txt,可以看下:
CMake Lists.txt library.cpp library.h
先看各个文件的代码:
addlib/library.h:
#ifndef CPPPROJECT_LIBRARY_H
#define CPPPROJECT_LIBRARY_H
int acc_add(int);
#endif
addlib/library.cpp:
#include "library.h"
#include
void hello(){
std::cout<
}
int acc_add(int n){
int sum=0;
for(int i=0;i
sum+=i;
}
return sum;
}
addlib/CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
project(accliblibrary)
set(CMAKE_CXX_STANDARD 11)
add_library(accliblibrary SHARED library.cpp library.h) # 诉生成一个库文件。
main.cpp:
#include
#include
#include "addlib/library.h"
using namespace std;
int main(){
int n=10;
int ans=acc_add(n);
cout<
return 0;
}
CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
project(cppproject)
set(CMAKE_CXX_STANDARD 11)
add_subdirectory(acclib)
add_executable(cppproject main.cpp) #生成一个可执行的文件
target_link_libraries(cppproject accliblibrary)
下面就是编译该项目,生成可执行文件:
cd build/
cmake ..-- The C compiler identification is AppleClang 8.0.0.8000042
-- The CXX compiler identification is AppleClang 8.0.0.8000042
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/zhoumeixu/Documents/cmakedemo/build
make:
Scanning dependencies of target addliblibrary
[ 25%] Building CXX object addlib/CMakeFiles/addliblibrary.dir/library.cpp.o
[ 50%] Linking CXX shared library libaddliblibrary.dylib
[ 50%] Built target addliblibrary
Scanning dependencies of target cmakedemo
[ 75%] Building CXX object CMakeFiles/cmakedemo.dir/main.cpp.o
[100%] Linking CXX executable cmakedemo
[100%] Built target cmakedemo
./cmakedemo
1+....+10=45
这篇文章就介绍下面,下面亿速云小编将继续为大家介绍
c c 语言编程项目实例,实例分享cmake编译一个简单c++项目(demo)相关推荐
- c语言二级编程实例,二级C语言编程_-实例.doc
二级C语言编程_-实例.doc 编程实例 ? 1.???????? 1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位.十位.个位的数字都是1.2.3. ...
- c语言调用子程序的例子,几个C语言编程应用实例.DOC
PAGE PAGE 290 第13章 几个C语言编程应用实例 13.1 TMS320LF2407与图形液晶显示模块接口及应用 源程序代码: 所需的复位和中断向量定义文件"vectors.as ...
- C语言编程>第三周 ⑥ 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
例题:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 代码如下: /*程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个 ...
- C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。
例题:编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中. 在主函数中调用该函数计算出这n个整数之和. 代码如下: /*代码分析:录入函数需要两个参数:一个参数是需要用来存储数字的数组, ...
- C语言编程>第五周 ⑤ 编写一个程序,从键盘输入X,Y,Z 3个数, 编写函数计算3个数的立方和并返回计算结果。
例题:编写一个程序,从键盘输入X,Y,Z 3个数, 编写函数计算3个数的立方和并返回计算结果. 第一种方法: 代码如下: #include <stdio.h> int abc(int,in ...
- 电脑用java怎么编程,使用java编程从0到1实现一个简单计算器
学习编程语言最重要的就是实践.很多小伙伴在学习完编程语言后,一直停留在基础阶段,只懂一大堆理论知识,而不懂得实践.那么,今天我们一起来动手做一个小计算器,回顾下学习过的知识,同时这也是很多大学计算机专 ...
- MPLAB-IDE-C语言编程代码实例-分析
以下学习笔记均使用C语言编程,编程软件为MPLAB IDEV8.89附加PICC18V9.66PRO版本.调试单片机采用pic18f14k22单片机. CONFIG __CONFIG();此段代码为P ...
- 手机c语言编程器哪个好,可以推荐一个手机上最好用且免费的c语言编辑器吗?...
C4droid(又名C++编译器)呗,一个既可以编辑,还可以运行C语言的手机编程软件,下面我简单介绍一下这个软件的安装和使用: 1.首先,安装C4droid,这个直接在手机应用中搜索就行,如下,大概也 ...
- c语言数组长度可以在键盘上输入吗,C语言编程(用指针) 定义一个数组长度为10,从键盘输入数组,将每一个元素除以2后,输出数组...
#includeint main(){int a[10]={},i,sum=0;printf("请输入10个整数:\n");for(i=0;i<10;i++){scanf(& ...
最新文章
- 【以太坊】web3.js的1.0版本和0.2.0版本的安装及区别
- Python爬虫(九)_案例:使用正则表达式的爬虫
- Saltstack 介绍、安装、配置(一)
- 红帽杯——childRE
- Linux (redhat 6.5)服务器上安装Webmin
- ANSYS——“There is at least 1 small equation solver pivot term”问题的解决办法
- 我的世界手机版javaui材质包_传奇世界中变版手机版下载-传奇世界中变版手机版最新下载...
- OpenCV 画圆circle、画椭圆ellipse
- python实现将给定列表划分为(等长的/不等长)的元素和大致相等的两个子列表
- linux嵌入式ARM系统开发实战教程从入门到精通
- 海康SDK集成,PTZ控制
- Unity激光雷达仿真调研(svl)
- 校园歌手大赛10分c语言,校园歌手大赛评分细则
- 我的日本友人(二):清野先生
- 图像处理的一些相关知识(Related knowledge for IQA)
- 第一台超高速巨型电子计算机,1997年,( )巨型机的研制成功,使我国在这个领域跨入了世界先进行列。...
- 巴西龟饲养日志-----日常护理
- run fsck manually
- Verilog硬件描述语言 西安电子科技大学 蔡觉平主讲 P8 语言设计思想和和可综合特性、组合电路设计 课程笔记
- Docker 底层技术推导
热门文章
- 2017.10.24 学校食堂Dining 失败总结
- 【英语学习】【Level 07】U03 Amazing wonders L4 The Qin Dynasty legacy
- 【英语学习】【WOTD】stratagem 释义/词源/示例
- 2016年3月-7月电机组装以及基于MAXON运动控制系统
- suse防火墙mysql远程配置_CentOS 6.8 配置防火墙,开放8080端口
- C++开源矩阵计算工具——Eigen的简单用法(三)
- python writerow 返回值_python – .writerow()csv返回一个数字而不是写行
- 一对矩阵的相关性_矩阵分析学习笔记(1)
- Zen Garden驾到:首批Metal游戏已登录iTunes应用商店
- jQuery 的“原型污染”安全漏洞