实例分享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)相关推荐

  1. c语言二级编程实例,二级C语言编程_-实例.doc

    二级C语言编程_-实例.doc 编程实例 ? 1.???????? 1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位.十位.个位的数字都是1.2.3. ...

  2. c语言调用子程序的例子,几个C语言编程应用实例.DOC

    PAGE PAGE 290 第13章 几个C语言编程应用实例 13.1 TMS320LF2407与图形液晶显示模块接口及应用 源程序代码: 所需的复位和中断向量定义文件"vectors.as ...

  3. C语言编程>第三周 ⑥ 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

    例题:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 代码如下: /*程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个 ...

  4. C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。

    例题:编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中. 在主函数中调用该函数计算出这n个整数之和. 代码如下: /*代码分析:录入函数需要两个参数:一个参数是需要用来存储数字的数组, ...

  5. C语言编程>第五周 ⑤ 编写一个程序,从键盘输入X,Y,Z 3个数, 编写函数计算3个数的立方和并返回计算结果。

    例题:编写一个程序,从键盘输入X,Y,Z 3个数, 编写函数计算3个数的立方和并返回计算结果. 第一种方法: 代码如下: #include <stdio.h> int abc(int,in ...

  6. 电脑用java怎么编程,使用java编程从0到1实现一个简单计算器

    学习编程语言最重要的就是实践.很多小伙伴在学习完编程语言后,一直停留在基础阶段,只懂一大堆理论知识,而不懂得实践.那么,今天我们一起来动手做一个小计算器,回顾下学习过的知识,同时这也是很多大学计算机专 ...

  7. MPLAB-IDE-C语言编程代码实例-分析

    以下学习笔记均使用C语言编程,编程软件为MPLAB IDEV8.89附加PICC18V9.66PRO版本.调试单片机采用pic18f14k22单片机. CONFIG __CONFIG();此段代码为P ...

  8. 手机c语言编程器哪个好,可以推荐一个手机上最好用且免费的c语言编辑器吗?...

    C4droid(又名C++编译器)呗,一个既可以编辑,还可以运行C语言的手机编程软件,下面我简单介绍一下这个软件的安装和使用: 1.首先,安装C4droid,这个直接在手机应用中搜索就行,如下,大概也 ...

  9. c语言数组长度可以在键盘上输入吗,C语言编程(用指针) 定义一个数组长度为10,从键盘输入数组,将每一个元素除以2后,输出数组...

    #includeint main(){int a[10]={},i,sum=0;printf("请输入10个整数:\n");for(i=0;i<10;i++){scanf(& ...

最新文章

  1. 【以太坊】web3.js的1.0版本和0.2.0版本的安装及区别
  2. Python爬虫(九)_案例:使用正则表达式的爬虫
  3. Saltstack 介绍、安装、配置(一)
  4. 红帽杯——childRE
  5. Linux (redhat 6.5)服务器上安装Webmin
  6. ANSYS——“There is at least 1 small equation solver pivot term”问题的解决办法
  7. 我的世界手机版javaui材质包_传奇世界中变版手机版下载-传奇世界中变版手机版最新下载...
  8. OpenCV 画圆circle、画椭圆ellipse
  9. python实现将给定列表划分为(等长的/不等长)的元素和大致相等的两个子列表
  10. linux嵌入式ARM系统开发实战教程从入门到精通
  11. 海康SDK集成,PTZ控制
  12. Unity激光雷达仿真调研(svl)
  13. 校园歌手大赛10分c语言,校园歌手大赛评分细则
  14. 我的日本友人(二):清野先生
  15. 图像处理的一些相关知识(Related knowledge for IQA)
  16. 第一台超高速巨型电子计算机,1997年,( )巨型机的研制成功,使我国在这个领域跨入了世界先进行列。...
  17. 巴西龟饲养日志-----日常护理
  18. run fsck manually
  19. Verilog硬件描述语言 西安电子科技大学 蔡觉平主讲 P8 语言设计思想和和可综合特性、组合电路设计 课程笔记
  20. Docker 底层技术推导

热门文章

  1. 2017.10.24 学校食堂Dining 失败总结
  2. 【英语学习】【Level 07】U03 Amazing wonders L4 The Qin Dynasty legacy
  3. 【英语学习】【WOTD】stratagem 释义/词源/示例
  4. 2016年3月-7月电机组装以及基于MAXON运动控制系统
  5. suse防火墙mysql远程配置_CentOS 6.8 配置防火墙,开放8080端口
  6. C++开源矩阵计算工具——Eigen的简单用法(三)
  7. python writerow 返回值_python – .writerow()csv返回一个数字而不是写行
  8. 一对矩阵的相关性_矩阵分析学习笔记(1)
  9. Zen Garden驾到:首批Metal游戏已登录iTunes应用商店
  10. jQuery 的“原型污染”安全漏洞