よちよちpython

独習 python/Qpython/Pydroid3/termux/Linux

termuxでCとC++の「hello world」

Androidスマホに入れている端末アプリtermuxC言語C++言語をコンパイル・実行できたので、忘れない内にメモ。

CはPythonと違って、コンパイラというソフトで一度コードをマシン語に変換して実行ファイルを作る。そしてその実行ファイルを実行する。



Cで「Hello World


コードを用意


vimなど適当なエディタで「Hello World」と出力するコードを書く。ここではファイル名「hello.c」で保存する。



$ vim hello.c

空のhello.cがvimで開くので、以下のコードを書く。



#include <stdio.h>

int main()
{
    printf("Hello, world!\n");
    return 0;
}

書いたら保存して終了。

:wq

これでカレントディレクトリに「hello.c」が作られた。

コンパイル


clangというコンパイラを使う。
gccではエラーが出てコンパイルできなかった。

$ clang -o hello hello.c

これでコードファイル「hello.c」がコンパイルされ、「hello」という実行ファイルが作成される。


実行


実行ファイル「hello」を相対パスで指定すると実行される。

$ ./hello

「Hello,World!」と出力されたら成功。



C++で「Hello World


コードを用意


Cの時と同様に、C++言語でコードをvimで書く。ここでは「hello.cpp」をファイル名とする。



$ vim hello.cpp

vimが開いたら、以下のコードを書いて保存終了。

#include <iostream>
 
using namespace std; 

int main(){
    cout << "Hello world." << endl;
    return 0;
}

書いたら保存してvimを閉じる。

:wq



コンパイル


「g++」というコンパイラを使えば出来た。

$ g++ -o hello hello.cpp

これによりカレントディレクトリに「hello.cpp」からコンパイルされた実行ファイル「hello*」が作成される。

実行


$ ./hello

相対パスで実行ファイルを指定し実行。
Hello World」と出力されたら成功。



学生時代にCのポインタで挫折して以来、久しぶりに触った。極力避けたい。

追記
上ではファイルの実行をサラッとやっているが、Termuxを更新したら「permission denied」が出て実行出来なくなっていた。chmod +x ファイル名等でファイルの権限を変えようとしても上手くいかなかった。ただし、実行ファイルをホームディレクトリに移せば実行できた。

# ファイルをホームディレクトリに移動させる
$ mv ファイル名 ~/


# ホームディレクトリに移動
$ cd

# 実行
$ ./ファイル名

# ファイルの権限確認 (rwxとかになっていれば実行できる)
$ ls -l |grep ファイル名

# ファイルに実行権限の追加
$ chmod +x ファイル名



TermuxをGoogleプレイストア版からF-Droid版に切り替えたいときはコチラ
AndroidにTermuxとPythonをF-Droidから再インストールした(2021年12月 - よちよちpython