ラベル gcc の投稿を表示しています。 すべての投稿を表示
ラベル gcc の投稿を表示しています。 すべての投稿を表示

2017/11/20

Termuxの備忘録

昔書いた、
Android上で動くgccの導入
WgetをAndroid NDKでコンパイル
Android用のnkfをコンパイル
Android用のnkfをコンパイル その2
がたまにアクセスがあるので、自分の備忘録も兼ねて。

Android 5.0以上ならターミナルエミュレーターはTermuxの使用をお勧めします。


インストールと初期設定など


まずGoogle Playからインストール → Termux

使い方はTermuxのThe Termux Wikiを見ればOK

忘れがちなキーの割り当て(Touch Keyboardより)
・Volume Up + W → Up arrow key
・Volume Up + A → Left arrow key
・Volume Up + S → Down arrow key
・Volume Up + D → Right arrow key

ボリュームダウンが[Ctrl]キーに割り当てられてるけど、操作し辛いのでナビゲーションドロワーから「KEYBOARD」を長押しして、「Extra keys view」を表示しておく。(Touch Keyboardより)
バージョン 0.62から Extra keys view は Volume UP + Q で表示/非表示可能 (2018/06/24 追記)
Volume UP + Q での Extra keys view の表示/非表示は以前からあったようです(2018/06/27 追記)


Termux-setup-storage にある通り、ストレージの初期設定を行う。

あとはDebian系のディストリビューションと同じ感覚で、

$ apt update

で利用できるパッケージリストの更新。

$ apt upgrade

で新しいパッケージに更新。

以上で、Termuxの準備は完了。


パッケージのインストール


・Clang
以前はgccのパッケージがあったのですが、現在ではClangになっています。(clangのパッケージに含まれるgccはclangへのリンクになっています。)

$ apt install clang

でインストールされます。

・Wget
Termuxはbusyboxがインストールされているので、busyboxで機能が足りているならそのまま使用、機能が足りないようであれば、パッケージのインストール。

$ apt install wget

でインストールされます。

・nkf
Termuxのパッケージにはないので、コンパイルします。
nkf Network Kanji Filterからソースをダウンロードして、ファイルの展開後、config.h の

#define DEFAULT_CODE_UTF8

を有効にして

$ make

で実行ファイルが作成されます。

2018/06/16 追記
FDcloneのコンパイル、インストール方法は Termux上でFDcloneを動かす に書きました。

2012/02/19

Android上で動くgccの導入

2017/11/20 追記
Android 5.0以上ならTermuxでClangを使用できます → Termuxの備忘録
追記ここまで


前からAndroid上で動くgccが欲しいなぁと思っていたのですが、半年以上前にciel氏(@cielavenir)が作成されていました。凄い。

Marijuana氏のツイートを見て、同じくFDcloneをAndroid上で動かしたいな、と思っていたところ、ciel氏がFDcloneをビルドして下さったところから、Android上で動くgccがあることを知りました。

ciel氏のDropboxで共有されているファイルの一覧から以下のファイルをダウンロード。
  • android_gcc_r2a.tar.bz2
  • android_gcc_supplement.tar.bz2
adbでIS01に接続し、/data/local/に「gcc」ディレクトリを作成(パーミッションは775)後、2ファイルを展開。
/data/localのパーミッションが771なので、connect botで操作する時もファイルの一覧が見られるようにパーミッションを775に変更。

普段はconnect botでシェルをbashにしているので、~/.bashrcにgccなどへのパスの設定とライブラリのパスの設定を追加。

PATH=$PATH:/data/local/gcc/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/local/gcc/lib
簡単なソースを書き、コンパイルして作成された実行ファイルが動くことを確認。


FDcloneの導入は、Marijuana氏のサイトとrattcv氏のブログ(2012/02/17)を参考にして下さい。

IS01ではciel氏のビルドされたFDcloneだと
reloc_library[1302]: 9496 cannot locate 'killpg'...CANNOT LINK EXECUTABLE
となり、動作しなかったので、自分でビルドすることに。
#Android2.xと1.6の差か…

2012/05/19 追記
Android NDKのヘッダーファイルを見るとkillpg()がサポートされているのはAPIレベルが8以上、つまりAndroid 2.2以上のようです。