CMake 入门1/5:基于阿里云 ECS搭建体验环境

简介: 序言CMake 入门共分为五个小节,规划如下:基于阿里云 ECS 搭建体验环境第一个程序 helloworld体验有目录结构的项目构建构建共享库构建静态库实验环境本系列基于阿里云 ECS 环境进行,具体基本信息如下:ECS 配置 CPU 1核,内存 1G,网络 1M,磁盘...

序言

CMake 入门共分为五个小节,规划如下:

  • 基于阿里云 ECS 搭建体验环境
  • 第一个程序 helloworld
  • 体验有目录结构的项目构建
  • 构建共享库
  • 构建静态库

实验环境

本系列基于阿里云 ECS 环境进行,具体基本信息如下:

  • ECS 配置
    CPU 1核,内存 1G,网络 1M,磁盘 20G
  • 登录后的信息
Welcome to Alibaba Cloud Elastic Compute Service !
  • OS 版本
[root@myecs]#uname -a
Linux 3.10.0-514.26.2.el7.x86_64 #1 SMP Tue Jul 4 15:04:05 UTC 2017 x86_64 GNU/Linux
[root@myecs]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core) 
  • OS 自带的gcc 版本
[root@myecs]# gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-11)
Copyright © 2015 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。

搭建体验环境

1.安装 CMake

ECS 默认没有安装 CMake,需自行安装。

  • 安装命令
[root@myecs]#yum install cmake
  • 安装结果检查
[root@myecs]#cmake -version
cmake version 2.8.12.2
  • 详细过程输出参考,参见附一。

2.安装 gcc-c++

非必须,但后续体验需要,否则会遇到附三的错误信息。

  • 安装命令
[root@myecs]# yum install gcc-c++
  • 安装结果检查
[root@myecs]# g++ -v
使用内建 specs。
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
  • 详细过程输出参考,参见附二。

CMake相关链接

附录

附一 CMake 安装过程

[root@myecs]# yum install cmake
已加载插件:fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
base                                                     | 3.6 kB     00:00     
epel                                                     | 4.7 kB     00:00     
extras                                                   | 3.4 kB     00:00     
updates                                                  | 3.4 kB     00:00     
(1/6): base/7/x86_64/group_gz                              | 166 kB   00:00     
(2/6): extras/7/x86_64/primary_db                          | 156 kB   00:00     
(3/6): epel/x86_64/updateinfo                              | 956 kB   00:00     
(4/6): updates/7/x86_64/primary_db                         | 1.4 MB   00:00     
(5/6): base/7/x86_64/primary_db                            | 6.0 MB   00:00     
(6/6): epel/x86_64/primary_db                              | 6.6 MB   00:00     
Determining fastest mirrors
正在解决依赖关系
--> 正在检查事务
---> 软件包 cmake.x86_64.0.2.8.12.2-2.el7 将被 安装
--> 正在处理依赖关系 libarchive.so.13()(64bit),它被软件包 cmake-2.8.12.2-2.el7.x86_64 需要
--> 正在检查事务
---> 软件包 libarchive.x86_64.0.3.1.2-10.el7_2 将被 安装
--> 解决依赖关系完成

依赖关系解决

================================================================================
 Package            架构           版本                      源            大小
================================================================================
正在安装:
 cmake              x86_64         2.8.12.2-2.el7            base         7.1 M
为依赖而安装:
 libarchive         x86_64         3.1.2-10.el7_2            base         318 k

事务概要
================================================================================
安装  1 软件包 (+1 依赖软件包)

总下载量:7.4 M
安装大小:27 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): libarchive-3.1.2-10.el7_2.x86_64.rpm                | 318 kB   00:00     
(2/2): cmake-2.8.12.2-2.el7.x86_64.rpm                     | 7.1 MB   00:00     
--------------------------------------------------------------------------------
总计                                                28 MB/s | 7.4 MB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : libarchive-3.1.2-10.el7_2.x86_64                            1/2 
  正在安装    : cmake-2.8.12.2-2.el7.x86_64                                 2/2 
  验证中      : cmake-2.8.12.2-2.el7.x86_64                                 1/2 
  验证中      : libarchive-3.1.2-10.el7_2.x86_64                            2/2 

已安装:
  cmake.x86_64 0:2.8.12.2-2.el7                                                 

作为依赖被安装:
  libarchive.x86_64 0:3.1.2-10.el7_2                                            

完毕!
[root@myecs]# cmake -version
cmake version 2.8.12.2

附二 gcc-c++安装过程

[root@myecs]# yum install gcc-c++
已加载插件:fastestmirror
base                                                     | 3.6 kB     00:00     
epel                                                     | 4.7 kB     00:00     
extras                                                   | 3.4 kB     00:00     
updates                                                  | 3.4 kB     00:00     
(1/3): extras/7/x86_64/primary_db                          | 156 kB   00:00     
(2/3): epel/x86_64/updateinfo                              | 954 kB   00:00     
(3/3): epel/x86_64/primary_db                              | 6.6 MB   00:00     
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 gcc-c++.x86_64.0.4.8.5-36.el7 将被 安装
--> 正在处理依赖关系 libstdc++-devel = 4.8.5-36.el7,它被软件包 gcc-c++-4.8.5-36.el7.x86_64 需要
--> 正在处理依赖关系 libstdc++ = 4.8.5-36.el7,它被软件包 gcc-c++-4.8.5-36.el7.x86_64 需要
--> 正在处理依赖关系 gcc = 4.8.5-36.el7,它被软件包 gcc-c++-4.8.5-36.el7.x86_64 需要
--> 正在检查事务
---> 软件包 gcc.x86_64.0.4.8.5-11.el7 将被 升级
---> 软件包 gcc.x86_64.0.4.8.5-36.el7 将被 更新
--> 正在处理依赖关系 libgomp = 4.8.5-36.el7,它被软件包 gcc-4.8.5-36.el7.x86_64 需要
--> 正在处理依赖关系 cpp = 4.8.5-36.el7,它被软件包 gcc-4.8.5-36.el7.x86_64 需要
--> 正在处理依赖关系 libgcc >= 4.8.5-36.el7,它被软件包 gcc-4.8.5-36.el7.x86_64 需要
---> 软件包 libstdc++.x86_64.0.4.8.5-11.el7 将被 升级
---> 软件包 libstdc++.x86_64.0.4.8.5-36.el7 将被 更新
---> 软件包 libstdc++-devel.x86_64.0.4.8.5-36.el7 将被 安装
--> 正在检查事务
---> 软件包 cpp.x86_64.0.4.8.5-11.el7 将被 升级
---> 软件包 cpp.x86_64.0.4.8.5-36.el7 将被 更新
---> 软件包 libgcc.x86_64.0.4.8.5-11.el7 将被 升级
---> 软件包 libgcc.x86_64.0.4.8.5-36.el7 将被 更新
---> 软件包 libgomp.x86_64.0.4.8.5-11.el7 将被 升级
---> 软件包 libgomp.x86_64.0.4.8.5-36.el7 将被 更新
--> 解决依赖关系完成

依赖关系解决

================================================================================
 Package                 架构           版本                 源            大小
================================================================================
正在安装:
 gcc-c++                 x86_64         4.8.5-36.el7         base         7.2 M
为依赖而安装:
 libstdc++-devel         x86_64         4.8.5-36.el7         base         1.5 M
为依赖而更新:
 cpp                     x86_64         4.8.5-36.el7         base         5.9 M
 gcc                     x86_64         4.8.5-36.el7         base          16 M
 libgcc                  x86_64         4.8.5-36.el7         base         102 k
 libgomp                 x86_64         4.8.5-36.el7         base         157 k
 libstdc++               x86_64         4.8.5-36.el7         base         304 k

事务概要
================================================================================
安装  1 软件包 (+1 依赖软件包)
升级           ( 5 依赖软件包)

总下载量:31 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/7): cpp-4.8.5-36.el7.x86_64.rpm                         | 5.9 MB   00:00     
(2/7): gcc-4.8.5-36.el7.x86_64.rpm                         |  16 MB   00:00     
(3/7): gcc-c++-4.8.5-36.el7.x86_64.rpm                     | 7.2 MB   00:00     
(4/7): libgcc-4.8.5-36.el7.x86_64.rpm                      | 102 kB   00:00     
(5/7): libstdc++-4.8.5-36.el7.x86_64.rpm                   | 304 kB   00:00     
(6/7): libgomp-4.8.5-36.el7.x86_64.rpm                     | 157 kB   00:00     
(7/7): libstdc++-devel-4.8.5-36.el7.x86_64.rpm             | 1.5 MB   00:00     
--------------------------------------------------------------------------------
总计                                                46 MB/s |  31 MB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在更新    : libgcc-4.8.5-36.el7.x86_64                                 1/12 
  正在更新    : libstdc++-4.8.5-36.el7.x86_64                              2/12 
  正在安装    : libstdc++-devel-4.8.5-36.el7.x86_64                        3/12 
  正在更新    : libgomp-4.8.5-36.el7.x86_64                                4/12 
  正在更新    : cpp-4.8.5-36.el7.x86_64                                    5/12 
  正在更新    : gcc-4.8.5-36.el7.x86_64                                    6/12 
  正在安装    : gcc-c++-4.8.5-36.el7.x86_64                                7/12 
  清理        : gcc-4.8.5-11.el7.x86_64                                    8/12 
  清理        : libstdc++-4.8.5-11.el7.x86_64                              9/12 
  清理        : libgcc-4.8.5-11.el7.x86_64                                10/12 
  清理        : cpp-4.8.5-11.el7.x86_64                                   11/12 
  清理        : libgomp-4.8.5-11.el7.x86_64                               12/12 
  验证中      : cpp-4.8.5-36.el7.x86_64                                    1/12 
  验证中      : libgomp-4.8.5-36.el7.x86_64                                2/12 
  验证中      : gcc-4.8.5-36.el7.x86_64                                    3/12 
  验证中      : libgcc-4.8.5-36.el7.x86_64                                 4/12 
  验证中      : gcc-c++-4.8.5-36.el7.x86_64                                5/12 
  验证中      : libstdc++-4.8.5-36.el7.x86_64                              6/12 
  验证中      : libstdc++-devel-4.8.5-36.el7.x86_64                        7/12 
  验证中      : libgcc-4.8.5-11.el7.x86_64                                 8/12 
  验证中      : cpp-4.8.5-11.el7.x86_64                                    9/12 
  验证中      : libgomp-4.8.5-11.el7.x86_64                               10/12 
  验证中      : gcc-4.8.5-11.el7.x86_64                                   11/12 
  验证中      : libstdc++-4.8.5-11.el7.x86_64                             12/12 

已安装:
  gcc-c++.x86_64 0:4.8.5-36.el7                                                 

作为依赖被安装:
  libstdc++-devel.x86_64 0:4.8.5-36.el7                                         

作为依赖被升级:
  cpp.x86_64 0:4.8.5-36.el7               gcc.x86_64 0:4.8.5-36.el7            
  libgcc.x86_64 0:4.8.5-36.el7            libgomp.x86_64 0:4.8.5-36.el7        
  libstdc++.x86_64 0:4.8.5-36.el7        

完毕!

附三 未安装gcc-c++时可能遇到的报错信息

[root@myecs]# cmake .
-- The C compiler identification is GNU 4.8.5
-- The CXX compiler identification is unknown
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.   Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
-- Configuring incomplete, errors occurred!
See also "/home/cmakedemo/demo1/CMakeFiles/CMakeOutput.log".
See also "/home/cmakedemo/demo1/CMakeFiles/CMakeError.log".
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
弹性计算 数据挖掘 应用服务中间件
阿里云轻量应用服务器68元与云服务器99元和199元区别及选择参考
目前阿里云有三款特惠云服务器,第一款轻量云服务器2核2G68元一年,第二款经济型云服务器2核2G3M带宽99元1年,第三款通用算力型2核4G5M带宽199元一年。有的新手用户并不是很清楚他们之间的区别,因此不知道如何选择。本文来介绍一下它们之间的区别以及选择参考。
149 84
|
13天前
|
机器学习/深度学习 人工智能 PyTorch
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考
阿里云GPU云服务器怎么样?阿里云GPU结合了GPU计算力与CPU计算力,主要应用于于深度学习、科学计算、图形可视化、视频处理多种应用场景,本文为您详细介绍阿里云GPU云服务器产品优势、应用场景以及最新活动价格。
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考
|
12天前
|
存储 运维 安全
阿里云弹性裸金属服务器是什么?产品规格及适用场景介绍
阿里云服务器ECS包括众多产品,其中弹性裸金属服务器(ECS Bare Metal Server)是一种可弹性伸缩的高性能计算服务,计算性能与传统物理机无差别,具有安全物理隔离的特点。分钟级的交付周期将提供给您实时的业务响应能力,助力您的核心业务飞速成长。本文为大家详细介绍弹性裸金属服务器的特点、优势以及与云服务器的对比等内容。
|
20天前
|
人工智能 JSON Linux
利用阿里云GPU加速服务器实现pdf转换为markdown格式
随着AI模型的发展,GPU需求日益增长,尤其是个人学习和研究。直接购置硬件成本高且更新快,建议选择阿里云等提供的GPU加速型服务器。
利用阿里云GPU加速服务器实现pdf转换为markdown格式
|
4天前
|
存储 人工智能 网络协议
浅聊阿里云倚天云服务器:c8y、g8y、r8y实例性能详解与活动价格参考
选择一款高性能、高性价比的云服务器对于企业而言至关重要,阿里云推出的倚天云服务器——c8y、g8y、r8y三款实例,它们基于ARM架构,采用阿里自研的倚天710处理器,并基于新一代CIPU架构,通过芯片快速路径加速手段,实现了计算、存储、网络性能的大幅提升。2025年,计算型c8y云服务器活动价格860.65元一年起,通用型g8y云服务器活动价格1187.40元一年起,内存型r8y云服务器活动价格1454.32元一年起。本文将为大家详细解析这三款实例的性能特点、应用场景以及最新的活动价格情况,帮助大家更好地了解阿里云倚天云服务器。
|
7天前
|
机器学习/深度学习 弹性计算 缓存
简单聊聊,阿里云2核2G3M带宽云服务器与轻量应用服务器区别及选择参考
2核2G3M带宽云服务器与轻量应用服务器是目前阿里云的活动中,入门级走量型云服务器,轻量云服务器2核2G3M带宽68元一年,经济型e实例云服务器2核2G3M带宽99元1年。同样的配置,对于有的新手用户来说,有必要了解一下他们之间的区别,以及各自的购买和续费相关政策,从而选择更适合自己需求的云服务器。本文为大家简单分析一下我们应该选择哪一款。
|
7天前
|
监控 安全 数据库
阿里云国际站:如何使用阿里云国际站服务器
阿里云国际站服务器是一种强大的云计算服务,可以帮助用户轻松搭建和管理自己的网站、应用程序和数据库。本文将介绍如何使用阿里云国际站服务器,包括注册账户、选择服务器配置、安装操作系统、配置网络和安全设置等方面。
|
10天前
|
弹性计算 安全 搜索推荐
阿里云国际站注册教程:阿里云服务器安全设置
阿里云国际站注册教程:阿里云服务器安全设置 在云计算领域,阿里云是一个备受推崇的品牌,因其强大的技术支持和优质的服务而受到众多用户的青睐。本文将为您介绍阿里云国际站的注册过程,并重点讲解如何进行阿里云服务器的安全设置。
|
10天前
|
人工智能 监控 测试技术
阿里云磐久服务器稳定性实践之路
阿里云服务器质量智能管理体系聚焦自研服务器硬件层面的极致优化,应对高并发交付、短稳定性周期、早问题发现和快修复四大挑战。通过“三个重构”(质量标准、开发流程、交付模式)、“六个归一”(架构、硬件、软件、测试、部件、制造)策略,实现芯片、整机和云同步发布,确保快速稳定上量。此外,全场景测试体系与智能预警、分析、修复系统协同工作,保障服务器在萌芽阶段发现问题并及时解决,提升整体质量水平。未来,阿里云将继续深化大数据驱动的质量管理,推动服务器行业硬件质量的持续进步。
|
19天前
|
开发框架 缓存 .NET
阿里云轻量应用服务器、经济型e、通用算力型u1实例怎么选?区别及选择参考
在阿里云目前的活动中,价格比较优惠的云服务器有轻量应用服务器2核2G3M带宽68元1年,经济型e实例2核2G3M带宽99元1年,通用算力型u1实例2核4G5M带宽199元1年,这几个云服务器是用户关注度最高的。有的新手用户由于是初次使用阿里云服务器,对于轻量应用服务器、经济型e、通用算力型u1实例的相关性能并不是很清楚,本文为大家做个简单的介绍和对比,以供参考。