termuxでCとC++の「hello world」
Androidスマホに入れている端末アプリtermuxでC言語と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