Linux ZaurusにC/C++セルフ開発環境を作成

Linux Zaurusの情報

2017年6月、シャープ製のPDA Linux Zaurus SL-C760で懐かしのCP/Mを使うことができました。今度は、C/C++セルフ開発環境を作成しました。

Linux Zaurusで懐かしいCP/Mを使う

Linux Zaurus SL-C760

Linux Zaurus SL-C760


いろいろと遊んでみようとネット検索したら、リンク切れになっているサイトが多いために目指す情報にたどり着けないことがあり残念です。2003年ころに発売になった機種で約15年も経過しており、もはや現役マシンではないのかもしれません。

2007年には、「ザウルス宝箱Pro」というソフト開発者のために技術情報などを提供していたページが提供を終了したのでとても残念です。

  • SHARP Zaurus
  • SHARP Zaurus SL-C760仕様
  • SHARP Zaurus SL-C760
  • SHARP Zaurus サポートステーション SL-C760
  • SHARP ザウルスサポートステーション 開発者向け技術情報
ザウルスサポートステーション

ザウルスサポートステーション

セルフ開発環境をインストール

Linux ZaurusはLinuxを搭載しているので、セルフ開発環境を整備することにより、いろいろなソフトウェアをソースコードからインストールすることができます。

ザウルスファンの方が、セルフ開発環境のパッケージの公開先やインストール方法について解説しています。しかし、リンク切れが多く目的の情報にたどり着くために苦労しました。

私がインストールした環境(dev-img.bin パッケージ化群)は、ここからダウンロードしました。(ミラー)をクリックしてダウンロードします。

 

  • アセンブラ&リンカ      binutils 2.9.5.0.14-dev-1
  • 標準Cライブラリ       glibc 2.2.2-dev-2
  • Cコンパイラ         gcc 2.95.1-dev-1
  • Linux用ヘッダファイル  linux-headers 2.4.6-dev-2
  • makeユーティリティ    make 3.77-dev-1
  • C++コンパイラ       gcc-cplus 2.95.1-dev-3
  • Unix基本コマンド群    busybox 0.60.3-dev-1

 

ダウンロードしたパッケージ(.ipk)をSDカードに保存して、Linux Zaulusに装着します。

[設定]-[ソフトウェアの追加/削除]をクリックします。

設定

設定

[ソフトウェアをインストール]をクリックします。

ソフトウェアの追加と削除

ソフトウェアの追加と削除

パッケージを選択します。

インストール

インストール

インストール先を[●本体メモリー]とします。

インストール先

インストール先

パッケージを順々にインストールします。

インストール完了

インストール完了

C言語テストプログラムのビルド

C言語セルフ開発環境が整いました。gccのバージョンを確認します。

gcc --version
gcc バージョン

gcc バージョン

gccのバージョンは、2.95.1です。

下記テストプログラム(test.c)を作成します。

#include <stdio.h>
main()
{
    printf("Hellow\n");
}
test.c テストプログラム

test.c テストプログラム

テストプログラム(test.c)をビルドします。

gcc -o test test.c
test.c ビルド

test.c ビルド

テストプログラム(test.c)を実行します。

./test
test.c ビルドと実行

test.c ビルドと実行

無事、小さなテストプログラムを実行することができました。

NKF 文字コードフィルターをソースからビルド

Linux Zaurusは、nkfコマンドがインストールされていません。nkfは、文字コードの変換や改行コードの変換を行うフィルターで、昔からいろんなプラットフォームに移植され使用しているコマンドです。

今回は、ソースからビルドします。

ここから、nkf-2.1.4.tar.gz をダウンロードします。

SDカード(/mnt/card)に格納して、Linux Zaurusに装着します。

アーカイブを展開します。

tar -zxvf /mnt/card/nkf-2.1.4.tar.gz 
nkf 解凍

nkf 解凍

内容を確認します。

cd nkf-2.1.4
ls
nkf パッケージ内容

nkf パッケージ内容

nkfをビルドします。

make
nkf ビルドエラー

nkf ビルドエラー

/tmp で、I/O Errorが発生しました。

/tmp の容量が不足しているようです。ホームディレクトリの直下に tmpディレクトリを作成します。

mkdir /home/zaurus/tmp
export TMP=/home/zaurus/tmp
echo $TMP
TMP ディレクトリ作成

TMP ディレクトリ作成

もう一度、nkfをビルドします。

make
nkf ビルド

nkf ビルド

今度は、正常に終了しました。

root権限でインストールします。

su
make install

nkf のバージョンを確認します。

nkf --version
nkf バージョン

nkf バージョン

 

NKFの使い方

テスト用のテキスト(JIS ,SJIS ,UTF8 ,EUC)を用意しました。

cat test_jis_crlf.txt
cat test_sjis_crlf.txt
cat test_utf8_crlf.txt
cat test_euc_crlf.txt
nkf テストファイル

nkf テストファイル

Linux Zaulusは、EUCコードを採用しているようです。

文字コードと改行コードの確認

–guess オプション で、文字コードと改行コードを調べることができます。

nkf --guess test_jis_crlf.txt
nkf --guess test_sjis_crlf.txt
nkf --guess test_utf8_crlf.txt
nkf --guess test_euc_crlf.txt
nkf 文字/改行コード確認

nkf 文字/改行コード確認

文字コードの変換

入力側と出力側を指定して、文字コードの変換をします。

  •  -j : 出力指定 JIS(ISO-2022-JP)に変換
  •  -s : 出力指定 Shift-JISに変換
  •  -e : 出力指定 EUC-JPに変換
  •  -w : 出力指定 UTF-8に変換
  •  -J : 入力指定 JIS(ISO-2022-JP)と仮定
  •  -S : 入力指定 Shift-JISと仮定
  •  -E : 入力指定 EUC-JPと仮定
  •  -W : 入力指定 UTF-8と仮定
nkf -J -e test_jis_crlf.txt
nkf -S -e test_sjis_crlf.txt
nkf -W -e test_utf8_crlf.txt

 

nkf 文字コード変換

nkf 文字コード変換

改行コードの変換

入力側文字コードと出力側文字コードを指定して文字コードの変換をします。

  •  -Lu : 改行コードをLF(0x0A)に変換 【unix形式】
  •  -Lw : 改行コードをCR+LF(0x0D 0x0A)に変換 【Windows形式】
  •  -Lm : 改行コードをCD(0x0D)に変換 【Mac形式】
nkf -Lu test_euc_crlf.txt | nkf --guess
nkf -Lm test_euc_crlf.txt | nkf --guess
nkf -Lw test_euc_crlf.txt | nkf --guess
nkf 改行コード変換

nkf 改行コード変換

 

上書き

–overwrite オプションで指定したファイルに直接上書きします。

cat test.txt
nkf --guess test.txt

nkf --overwrite -Lw test.txt
nkf --guess test.txt

nkf --overwrite -Lm test.txt
nkf --guess test.txt
nkf --overwrite

nkf –overwrite

最後に

Linux Zaurusのセルフ開発環境が整いました。自分でC言語プログラムを作成したり、フリーウェアなどをビルドすることができます。しかし、少し大きなプログラムをビルドすると。 virural memory exhausted エラーが発生してしまいます。

スワップの設定などしてみたのですが、ビルドできないものもあります。

やっぱり、小さなLinuxですのでクロス開発環境を準備しないと遊べないのかな。