Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

C++ Linux

C++をLinuxでコンパイルする方法について

投稿日:2021年8月24日 更新日:

 

<目次>

(1) C++をLinuxでコンパイルする方法について
 (1-1) STEP0:【事前準備】ターミナル機能の準備(ターミナル、Teraterm、Putty)
 (1-2) STEP1:【事前準備】C++コンパイラのインストール
 (1-3) STEP2:【事前準備】テキストエディタのインストール
 (1-4) STEP3:HelloWorld用プログラムの作成&サーバにアップロード
 (1-5) STEP4:プログラムのコンパイル
 (1-6) STEP5:プログラムの実行
 (1-7) 補足:もしPG作成もサーバ側で行う場合

(1) C++をLinuxでコンパイルする方法について

今回はC++をLinuxでコンパイルする方法という事で、Visual Studio等が使えない環境(※補足1)においてC++を開発する場合のやり方について説明します。

(※補足1)
Visual StudioはWindowとMacのみ対応しており、Linuxでは使えません。しかし代替策としてVisual Studio Codeが使用できます。ただし、VS CodeはIDEではなく「エディタ」の括りであるため、Visual Studioの代替にはなりません。

全体像としては次のようなイメージになります。まず前半のSTEP0、1、2で必要なソフトウェアを導入して、後半のSTEP3でテキストエディタを使いプログラムを作り、STEP4、5でサーバ側でのコンパイル~実行を行います。

(図100)

(1-1) STEP0:【事前準備】ターミナル機能の準備(ターミナル、Teraterm、Putty)

ターミナルはOSのシェル(ユーザがカーネルを操作する為のIF)を操作するためのIFです。今回はクライアントからリモート接続でターミナル機能を実現できるTeratermを導入し、リモートでサーバを操作します(Putty等でも代替可能)。
 
Teratermは下記のサイト等からダウンロードできます。
 

(1-2) STEP1:【事前準備】C++コンパイラのインストール

C++をコマンドラインからコンパイルするためには、「GCC」(※注1)や「mingw」といったコンパイラが必要です。今回はGCCコンパイラを含むパッケージ「Development Tools」をインストールします。
 
(※注1)GCCは「GNU Compiler Collection」の略で、複数のメジャーなプログラミング言語(CやC++)のコンパイラを統合して配布したものです。
 
①「Development Tools」をインストール
・下記コマンドを実行します。
(コマンド)
$ sudo yum groupinstall "Development Tools" --setopt=group_package_types=mandatory,default,optional
 
(図111)①

・「Is this ok [y/d/N]:」で「y」を入力
(図111)②

・「Complete」が出たら完了
(図111)③

②インストール後のチェック
・チェック#1:gccのインストール場所を確認します
(コマンド)
$ whereis gcc
 
(結果例)
gcc: /usr/bin/gcc /usr/lib/gcc /usr/libexec/gcc /usr/lib64/ccache/gcc /usr/share/man/man1/gcc.1.gz
 
(図112)①

・チェック#2:コンパイラのバージョン確認
 
(コマンド)
$ gcc –version
 
(結果例)
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 

目次にもどる

(1-3) STEP2:【事前準備】テキストエディタのインストール

次にテキストエディタをインストールします。これはローカルでプログラムを編集する用です。特にメジャーな所だと「サクラエディタ」や「Notepad++」などが使いやすいと思いますが、何でもOKです。
 
・サクラエディタ
 
・Notepad++
 

(1-4) STEP3:HelloWorld用プログラムの作成&サーバにアップロード

・①HelloWorld用プログラムの作成
先ほど導入したテキストエディタで下記のHello World用プログラムを作成します。名前は「test1」で拡張子は「.cpp」で保存します。
 
#include 
using namespace std;
int main() 
{
    cout << "Hello, World Rainbow Engine!\n";
    return 0;
}

(図131)

・②サーバにアップロード
TeraTermのSSH SCP等で、作成した「test1.cpp」をサーバの任意のディレクトリに配置します。
(図132)

(1-5) STEP4:プログラムのコンパイル

・①下記コマンドでコンパイルを行います。
(コマンド)
$ cd [test1.cppが格納されているディレクトリ]
$ g++ -o rainbowtest test.cpp

(図141)


生成後にlsコマンドで「rainbowtest」が生成されたか?を確認します。
(図142)

(補足)
「g++」がコマンドで「-o」オプションで制せ英される実行形式ファイル(.out)の名前を「rainbowtest」に指定しています。最後の「test.cpp」は先ほどアップロードした、コンパイル対象のC++モジュールです。
 

目次にもどる

(1-6) STEP5:プログラムの実行

コマンドラインから実行する場合は次のように実行します。
 
(コマンド)
./hello
 
実行した結果「Hello, World Rainbow Engine!」が表示されればOKです。
(図151)
 

目次にもどる

(1-7) 補足:もしPG作成もサーバ側で行う場合

もしプログラム作成作業も全てサーバ側で行いたい場合、STEP2のテキストエディタをサーバ側にインストールする必要があるのと、クライアント⇒サーバにリモートデスクトップするための環境を用意する事が望ましいです(GUIによる操作が出来るため)。
 
各STEPの工程は次のように変化します。
(表)
STEP0:【事前準備】ターミナル機能の準備(ターミナル、Teraterm、Putty) ⇒代わりにリモートデスクトップ環境を構築する
(参考)https://rainbow-engine.com/rdp-vncserver-centos7/
STEP1:【事前準備】C++コンパイラのインストール 変更なし
STEP2:【事前準備】テキストエディタのインストール ⇒サーバ側で実施(geditやviエディタなどを導入)
STEP3:HelloWorld用プログラムの作成&サーバにアップロード ⇒サーバ側で実施(geditやviエディタなどを使って作成)
STEP4:プログラムのコンパイル 変更なし
STEP5:プログラムの実行 変更なし

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-C++, Linux

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

CentOS6でエラー「Cannot find a valid baseurl for repo: centos-sclo-rh」が出た時の対処メモ

<目次> (1) CentOS6でエラー「Cannot find a valid baseurl for repo: centos-sclo-rh」が出た時の対処メモ  (1-1) エラーメッセージ …

CentOS6の日本語入力の設定中に起きた「Unable to keep Input Method running」エラーや文字化けの対処方法について

(0)目次&概説 (1) 記事の目的 (2) 日本語化の対応手順 (3) 各パッケージの補足説明 (4) エラー対処:IBusの”Unable to keep Input Method R …

Linuxにおけるデーモンやサービスの意味や常用コマンドについて

(0)目次&概説 (1) 記事の目的  (1-1) 目的  (1-2) 前提条件 (2) デーモン/サービスとは?(CentOS6以前)  (2-1) デーモン/サービスとは?  (2-2) Syst …

Linux基礎コマンド(第4回) viエディタの操作・ログの取得

初めてLinuxを触る人向けにTeraTermのログイン方法からコマンドを入力する方法まで数回にわたり解説していきます。本記事はその第4弾で、viエディタの使い方を簡単に紹介します。第1弾の記事はこち …

C++のポインタとは?概念や基本的な使い方をご紹介

  <目次> (1) C++のポインタとは?概念や基本的な使い方をご紹介  (1-1) はじめに  (1-2) ポインタとは? (1) C++のポインタとは?概念や基本的な使い方をご紹介 「 …

  • English (United States)
  • 日本語
Top