無料の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と同じか。

Mac OS XにQt5.7のインストールに苦戦した

結果的にQtは悪くなく、インストールしていたXcodeとCommandline tools for Xcodeのバージョンが古かったのが原因。
(Windows上のVMWare)のMac OS X Mavericks 10.9 にQt5.7をインストールしたら
コンパイル時に
error:
“Qt requires C++11 support”
とエラーが出た。
Xcode 4.6.3をインストールしていたが、C++規格のバージョンのC++11に対応してないようだ。
Qt5.7はC++11を使っているが別に使わなくていいのに。
クロスプラットフォームを謳っているQtがC++11必須にしてしまえば対応プラットフォームが減ってしまう。
C++11必須かどうかは分からない。
もしかしたら、qmake.confのCONFIG指定かなんかでC++11でなくてもできるかも知れない。
でも、Xcodeをバージョンアップする方法を選んで、Xcode 6.2をインストールした。
しかしXcode 6.2を起動しようとすると、
You can’t use this version of the
application “Xcode” with this version of
OS X.
You have OS X 10.9. The application requires OS X
10.9.4 or later.
とエラーが出て起動しなかった。
エラーウィンドウにあるSoftware Updateのボタンを押すとMac OS Sierraがどうとかいうウィンドウが出て来た。
Sierraって何か知らなかったが最新版のMac OSのようだ。
なぜかXがついていない。
サイズ4.77GB。でかすぎて要らない。
どうしたらいいか悩んだ。
古いバージョンのXcodeは上書きして消してましったし。
Mavericksの最終バージョンを探して10.9.5のアップデートをダウンロードすることにした。
ダウンロードサイズは937MB。
低速回線なのでダウンロード時間は六時間ぐらいだろうか。
(結果は六時間六分)
後で気づいたが、Commandline tools for Xcode 6.2を入れてなかった。
Xcodeが起動しなくてもCommandlin toolsをインストールしてあればコンパイルできるかも知れないと思いやってみたが、
コンパイルすると、
fatal error:
‘TargetConditionals.h’ file not found
とエラーが出てコンパイルできなかった。
Mavericks を10.9.4にバージョンアップしたとしてもこのエラーは変わらないよような気がする。
Qt5.7はMavericksに対応してないのだろうか。
どうしたらいいのだろうか。
調べた結果、プロジェクトファイルのxxx.proに、
QMAKE_MAC_SDK = macosx10.9
を追加すればコンパイルができた。
(使っているOSが、Mac OS X 10.9の場合。)
まだ、Mac OS X 10.9.5にバージョンアップしていないためXcode 6.2は起動しないがQtをコマンドラインで使うのには問題がなかった。
Qtcreatorは起動すら試してない。
簡単な自作プログラムをコンパイルして起動してみたが、WindowsとLinuxが期待通りの動作をしたのに対してMac OS Xでは動作に挙動があった。
コマンドラインで起動した場合、カレントディレクトリがターミナルエミュレーター(TerminalやDOS窓)のカレントディレクトリにはならなかった。
そのためプログラムと一緒のディレクトリに置いてあるファイルを、ファイル名だけ指定しても開けなかった。
絶対パスなら開けたが。
Mac OS Xではカレントディレクトリはどこになっているのだろうか。
やっぱり別のOSでは簡単に同じように動いてくれないなあ。
Qtで自身の実行ファイルのパスを得るにはどうしたらいいのだろうか。
applicationDirPath()とか、applicationFilePath()かな。
Mavericks 10.9.5へのアップデートは六時間六分でダウンロードできた。
今、アップデートかけて、OSをリスタートしようとするとろこで固まった。
いつまでも待てないのでリセットしたら10.9.5が起動したが、普通に終了できずに固まる。
リセット、シャットダウンしようとしたら途中で固まる。
翌日に追記、
起動時には何かエラーが出る。
使っていると固まることがある。
この症状が直らなかったのでMac OS Xの再インストールを決心。
再インストール後のMaveriks 10.9.5は普通に動作し、QtもC++ BuilderのFireMonkeyも動作するようになった。
XcodeとCommandline tools for Xcodeの適正バージョンを入れてからQtを入れると、
プロジェクトファイルのxxx.proに、
QMAKE_MAC_SDK = macosx10.9
を追加しなくても動いた。
どのようにMavericksをインストールしたかは次の記事に。

LunuxにQtをインストールしてみた

xbuntu14.4 64bitにQt 5.7をインストールした。
Qtのサイトからqt-opensource-linux-x64-5.7.0.runをダウンロードした。
ファイルサイズは749,414,423バイト。
ダウンロードの表示では715MB。
sh qt-opensource-linux-x64-5.7.0.run でやったらエラーが出たので、
chmod +x qt-opensource-linux-x64-5.7.0.run
してから ./qt-opensource-linux-x64-5.7.0.run
でインストール。(sudoをつけたかどうかは忘れた。)
これだけでは動かず、
sudo apt-get install mesa-common-dev
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
sudo apt-get install g++
とやったら動くようになった。
Windowsで作り始めたソースをコンパイルさせるとLinuxでも同じように動いた。
まだソースは小さいので大きくなってくると多少の修正は必要になるかも知れない。
Windowsで開発したものがLinuxでも動くのは感動です。
Javaでもそれ(クロスプラットフォーム)が実現できたけど、JavaはC/C++で書けないのが難点だった。
今、Mac OS XのQtもダウンロード中。

さっきソフトウェア関係の会社からメールが来たが

詳細は何も書いてない。
ソフトウェア関係の会社から協業したいとメールが来た。
開発依頼か?と思って返信したら、すぐ返事が来た。
スパムだったようだ。
ソウトウェア販売の営業を代行する会社だった。
私がその会社に金を払って私のソフトウェア販売の営業の代行をしてもらうという話なんだろう。
協業じゃなくて、「仕事ください。」の間違いだろうに。
騙すようなメール送って来ないで欲しい。

確かに私はソフトウェアの開発及び公開はしているんですが、
フリーソフトであって、販売してないんですよ。
金払えっていうメールは要らないなあ。
金くれる話はないかなあ。