QtのAndroid版試したがapkファイル作成ができなかった

昨日からAndroid SDKやNDKをアップデートするなど考えられることは全てやったつもりだがapkファイルを作るところでエラーが出る症状は変わらない。
なぜエラーが出ているのかは分からない。
そういうことで実行ファイルが作れない。
もう諦めた。

C++ Builderの記事をホームページに書こうと思う

いろいろ制限があってもC++ Builderの無料版が(一時的か恒久かは知りませんが)出たことは個人的に衝撃的なニュースです。
マイクロソフトがVisual Studioの無料版を出したので追従するしかなかったのでしょうか。
ソフトウェアは無料が当たり前に近い時代になってきて、開発環境も例外ではなくなりつつあります。
C++ Builderは今まで高価な開発環境だったので個人では手が出しにくかったのですが、これからはそうではないと思うのでホームページ(非ブログ)にC++ BUilderでの開発方法の記事を書こうかなと思っています。
サンプルプログラムとかを。

無料のC++ Builder Starterの制限

Starter Editionは、Windowsの32ビット版しかありません。
GUIライブラリはVCLとFireMonkey(FMX)の二つ使えます。
Windows 64ビットのバイナリを出力するコンパイラは上位エディションにはありますが、Windowsでは普通は64ビットOSを使う場合も32ビットのプログラムを作って配布するのでWindows版の64ビットのコンパイラは必要ないと思います。
C++ Builderの上位エディションで可能なMac OS X、iPhone、iPad、Androidの開発はStarter Editionではできません。
(Professionalではモバイル開発はオプション)
では、Windowsの32ビットの開発ならStarter Editionでも制限ないのかというと、残念なことにありました。
まず、VCLでTWebBrowserというコンボーネントが使えません。
(FireMonkey(FMX)では使えますがVCLの物とは仕様が違います。)
そしてデバッグ時にブレークポイントで任意のソースの行でプログラムの実行を一時停止できますが、ソースの変数にマウスカーソルを当てても、その変数の内容をStarterEditionでは表示してくれず無反応です。
今見つかった問題はこのぐらいかな。
まだ出て来るかも知れません。
あとはStarter Editionにはライセンス上の制限があり個人または五人以内の企業/組織でStarterによって開発したアプリケーションに関連する収益が、1,000 USドルを越えないという条件に入る場合のみ使えます。

無料になったC++ Builder 10.1 Berlin Starter Edition

久々に検索して見たら、いつの間にかC++ Builderが無料になっていました。
Starter Editionだけですけど、それでも十分価値があるものが無料というのはすごいことです。
でも金だして買った人はかわいそうだなあ。
期限は特に書いてないけど、念のために早めにダウンロードしておいたほうがいいかも。
https://www.embarcadero.com/jp/products/cbuilder/starter/promotional-download

BDS Cをダウンロードしてみた。

BDS Cは、昔のC言語のコンパイラで、
CP/MやMSX-DOSというOSで動くK&R仕様のC言語のサブセットのコンパイラです。
昔使っていました。
ダウンロードして見たんですが、オセロのプログラム、OTHELLO.Cと、OTHELLO.COMがなかった。
それでBDS Cに付属していたOTHELLO.C探しましたよ。
見つかったようです。
C++ BuilderのCコンパイラではコンパイルできませんでした。
それで書き直して、ANSI C仕様に書き直し、C++コンパイラでもコンパイルできるようにしました。

WindowsのQt配布DLLコピーコマンドのwindeployqt

コマンドラインで
windeployqt ディレクトリパス
と打つと、配布用のDLLをコピーしてくる。
Qt Windows版の純正のコマンドだ。
Qt 5.2 Windows版で試しにやってみたらサイズが大きすぎてびっくりです。
いくつかコンポーネントを貼り付けただけぐらいの非常に小さいプログラムなのに、
windeployqtが集めた実行ファイルとは別に必要なファイルの合計を計算してみたら約60MB。60694184バイト。
Qtの大きな欠点だなあ。
しかし本当にこれ全部必要なんだろうか。
C++ BuilderのVCLで作った、ウェブブラウザのあーすブラウザの実行ファイルは今現在二つで合計6MBほどで他にDLLとは要らない。
前のバージョンは3MB切ってました。
Qtは、こんなにバカでかいんじゃ配布が難しいしダウンロードも敬遠されしまう。

無茶苦茶USBの調子が悪い。

今に始まったことではなく、買ったばかりの新品の時からそうだった。
USB端子の接触が異常に悪い。
キーボードとマウスの接続がしょっちゅう切れている。
今までUSBのついたパソコンはいくつも買ってきたが調子悪いのはこれだけ。
買ってもう何年もたっているしパソコン買い替えたいですよ。
金ないから買えないけど。

Windows上のVMwareにMac OS X Mavericksを再インストールした

Mac OS X Mavericks 10.9にインストールしたQt5.7が、C++11を求めて来てコンパイルできない。
そのために、以前ダウンロードしていたXcode 6.2を入れた。
しかし、Mac OS X Mavericks 10.9では動かず、10.9.4かそれ以降が必要という。
Commandline tools for Xcode 6.2を入れるとXcodeが起動しない状態でもQtは使えたが一応、Mavericksをバージョンアップすることにした。
WindowsのVMwareに入れているMavericksを10.9から10.9.5にアップデートすると
リセットやシャットダウン時に固まるようになった。
起動時にはエラーが出るし、(アップデート前から元々出ていたが)
使っていると固まったりして使い物にならなかった。
VMwareにLion経由でMavericksを入れたのが問題なのだと思う。
元々起動時にエラーが出たりと調子が悪かった。
LionのインストーラーはCPUチェックが入っていて、AMDやCore i3ではインストールできない。
cpuidをCore2Duoに偽装してインストールすることはできたが実際はCore i3なのでおかしくなっても不思議ではない。
Lionを経由せずにMavericksを直にインストールする方法で再インストールをした。
方法は、
「Windows上にMac OS X Mavericksをインストールしてみた [方法]」

Windows上にMac OS X Mavericksをインストールしてみた [方法]


を参考にした。
このホームページがなくなると、二度と起動ディスクを作れなくなりそうなので
Mac OS X側でMavericksの起動ISOディスクを作るコマンドをメモしておく。
Mavericksのインストーラーを入れてからこのコマンドを打つ。


hdiutil attach /Applications/Install€ OS€ X€ Mavericks.app/Contents/SharedSupport/InstallESD.dmg -noverify -nobrowse -mountpoint /Volumes/install_app
hdiutil convert /Volumes/install_app/BaseSystem.dmg -format UDSP -o /tmp/Mavericks
hdiutil resize -size 8g /tmp/Mavericks.sparseimage
hdiutil attach /tmp/Mavericks.sparseimage -noverify -nobrowse -mountpoint /Volumes/install_build
rm /Volumes/install_build/System/Installation/Packages
cp -rp /Volumes/install_app/Packages /Volumes/install_build/System/Installation/
hdiutil detach /Volumes/install_app
hdiutil detach /Volumes/install_build
hdiutil resize -size `hdiutil resize -limits /tmp/Mavericks.sparseimage | tail -n 1 | awk '{ print $1 }'`b /tmp/Mavericks.sparseimage
hdiutil convert /tmp/Mavericks.sparseimage -format UDTO -o /tmp/Mavericks
rm /tmp/Mavericks.sparseimage
mv /tmp/Mavericks.cdr ~/Desktop/Mavericks.iso

「Install€ OS€ X€ Mavericks.app」の空白の部分に、何か特殊なコード(0x80かな?)が入っている。
これでいいんだろうか?
入手していた10.9がMavericks.appだったこともあり、「Install OS X Mavericks.app」の部分は、「Mavericks.app」に変更してやった。
一応言うと起動ISO作っても、素のVMwareにはインストールできません。
VMware Unlocker for OS X が必要ですが、普通に検索すれば出るのでここでは詳しく書きません。
Mac OS X Mavericks 10.9は、すでに入手してあったのでまずそれを直接入れてから10.9.5にアップデートした。
VirtulBoxに入れたかったが、やりかたが良く分からないので今回もVMwareで妥協した。
見事、Mavericks 10.9の起動ディスクを作れたが、
6GBのISOファイルをWindowsにコピーすることができず、かなり困った。
Mac OS Xは、WindowsのNTFSというファイルシステムへの書き込みに対応していませんから、USBのハードディスクにコピーはできません。
WindowsのFAT32というファイルシステムは、ファイル最大サイズが2GBなので6GB超の完成したISOファイルはUSBメモリやSDカードにはコピーできません。
私は、SMBでWindowsとのファイル共有でやりましたが、設定がかなり手間でした。
他の方法は、FAT32のUSBメモリにファイルをひとつあたり2GB以下に分割してコピーして後で合体する方法とか、
CD-Rに焼くとかでしょうか。
mountコマンドでNTFSを読み書きするオプションを付けてマウントしようとしたが読み込み専用とエラーが出てできなかった。
SMBでファイル共有できるようにしてMac OS XからWindowsにアクセスできるようになったけども、
ものすごく時間をかけてもWindowsからMac OS Xにアクセスすることはできなったか。
もう諦めた。
Mac OS XはWindowsとの共用が難しいな。
NTFSが基本読み込み専用なのはLinuxと同じか。