« 音がでないなぁ | トップページ | Linux 64-bit でも画像でました »

2014年3月16日 (日)

Linux 64-bit 再び

Ubuntu 64-bit移植のため、プロトコル構造体を見直しました。

結局のところ、8バイトになってしまったlongを4バイトであるintに書き換えただけでO.K.でした。あと定数をL付きからLなしにすることも必要でしたが。それぞれのメンバオフセットは正確に一致しています。1つだけdoubleのメンバがありますが、問題なさそうです。

さて、64bit Ubuntu 13.10 でビルドしようとしましたが、Ubuntu 13.10でパッケージとして提供されているQt5は5.0.2と少し古いです。Windowsでは5.2.1を利用しているので、これに合わすためQt Projectから直接最新をダウンロードしてインストールしました。

qt-opensource-linux-x64-5.2.1.run

というファイルです。普通システムにインストールするので、sudoコマンドでインストールします。

#ちなみに5.0.2では「multimedia moduleはない」という旨のメッセージが表示されます。

sudo ./qt-opensource-linux-x64-5.2.1.run

インストーラウィンドウが表示され、/opt/Qt5.2.1 にインストールするよう勧められます。あまり気にしないので、そのままインストールします。Qt5.2.1/5.2.1/gcc_64/bin へのパス設定追加をお忘れなく。

5.2.1のqmakeコマンドを使えば、問題なくMakefileが生成されました。

これでO.K.かと思いきや、さらなる問題が発覚しました。認証チェック用のデータ生成処理が32bit時と異なるようです。ま、x64でウィンドウが出たので今日はよしとします。基本的には書き換えなしでO.K.です。コードの可搬性の問題ですね。移植性がないコードを書くとハマることがよくありますね。

これで普段使っているWindows8.1とUbuntu x64 での検証作業ができることになりました。ソースコードはコメント込みで1511行です。コメント(ワンラインコメント"//"でしか書いていない)が457行なので、実質1000行ちょっとですね。AndoroidとかiOS(iPhone, iPad)とかMacも検証できるといいですが、あまり手を広げすぎても進まないので、しばらくWindows8.1とUbuntu x64 で確認したいと思います。(FreeBSDも確認したいんですが…5.2.1はソースからビルドしなければならないかも)

20140316_175714

コンパイル時にQt5さんが自動生成するソースコードは6000行ちょっとです。
moc_xxxxx.cpp, qrc_xxxxx.cpp という名前のソースコードが自動生成されます。Linuxだと標準でMakefileと同じディレクトリに生成されるので、少し気持ち悪いです。qmake実行時に何か指定できるのかも、後で調べよう。

(追記) 自動生成するコードのうち5943行はjpgファイルの取り込み用のデータ定義(qrc_xxxx.c)でした。

(追記2) openGLライブラリが必要でした。

sudo apt-get install libglu1-mesa-dev

でopenGLライブラリをインストールしてください。

« 音がでないなぁ | トップページ | Linux 64-bit でも画像でました »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: Linux 64-bit 再び:

« 音がでないなぁ | トップページ | Linux 64-bit でも画像でました »