CMake入門1/5:基於阿里雲ECS搭建體驗環境
序言
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相關連結
- 官網下載地址:https://cmake.org/download/
- 線上幫助文件:https://cmake.org/documentation
- 關於 gcc-c++ https://pkgs.org/download/gcc-c++
附錄
附一 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".
相關文章
- 體驗有禮:基於ECS快速搭建Docker環境Docker
- 基於ECS快速搭建Docker環境Docker
- Day2——基於ECS快速搭建Docker環境Docker
- 基於ECS搭建FTP服務(阿里雲)FTP阿里
- 基於ECS搭建雲上部落格(體驗有禮)
- 阿里雲體驗實驗室 教你《快速搭建Docker環境》阿里Docker
- 阿里雲體驗實驗室教程《快速搭建LAMP環境》阿里LAMP
- 阿里雲體驗實驗室 教你如何《快速搭建LNMP環境》阿里LNMP
- 阿里雲體驗實驗室 教你如何《搭建Hadoop環境》阿里Hadoop
- 阿里雲體驗實驗室 教程《搭建Java Web開發環境》阿里JavaWeb開發環境
- golang 入門之環境搭建Golang
- Mule 入門之:環境搭建
- 入門(一)搭建GAE環境
- appium入門篇(1)--零基礎搭建自動化環境APP
- 搭建gloo閘道器(基於envoy)的wasm實驗環境(阿里雲、本機)ASM阿里
- Django入門指南-第1部分(環境搭建)Django
- 基於Docker搭建LNMP環境DockerLNMP
- Elasticsearch快速入門和環境搭建Elasticsearch
- SpringMVC入門與環境搭建SpringMVC
- Python爬蟲建站入門手記(1):環境搭建Python爬蟲
- 阿里雲體驗實驗室 教你《搭建Node.js程式設計環境》阿里Node.js程式設計
- Vue.js入門之環境搭建Vue.js
- QT開發快速入門-教程1:搭建QT開發環境QT開發環境
- CLion搭建C環境、cmake、make、MingGW
- Angular環境搭建及簡單體驗Angular
- Docker 入門(Mac環境)-part 1 入門基本操作DockerMac
- 基於ubuntu如何搭建TensorFlow環境Ubuntu
- 基於Webpack搭建React開發環境WebReact開發環境
- Docker 搭建 PHP 環境及相關軟體入門到了解DockerPHP
- 阿里雲體驗有禮:使用RDS和ECS搭建個人部落格阿里
- Python 入門到精通(1):Windows 搭建 Python 開發環境PythonWindows開發環境
- 搭建基於netfilter/iptables的防火牆實驗環境(轉)Filter防火牆
- Flutter入門之Mac最詳環境搭建FlutterMac
- Flutter入門教程(二)開發環境搭建Flutter開發環境
- Mac 後端入門開發環境搭建Mac後端開發環境
- 基於ECS搭建雲上部落格
- 基於ECS搭建GitLab服務Gitlab
- Python基礎:搭建開發環境(1)Python開發環境