Entry

【続】FreeBSD で Qt-Bsch

2005年01月29日

ちょっと前に Linux 向けの回路エディタ「Qt-Bsch」を FreeBSD でコンパイルしたけれど(参照:「FreeBSD で Qt-BSch」),Qt-Bsch 0.25 と FreeBSD 5.3R(qt-3.3.3_3)の環境にしてからコンパイルできなくなってしまいました。Qt-Bsch 0.11e もコンパイルが通らなくて,ゲンナリ……。

回路図を描く分には,Eagle があるから問題はないんですけれど,15 インチの低解像度ディスプレイでシコシコ描くには辛い環境です。単に回路図が欲しいだけなのに,エクスポートしたファイルが大きすぎるのにも困っていたのでした(結局 Gimp で解像度を落すことになる……)。

もともと,Qt-Bsch は Qt 向けに作られているので,Qt が動く環境だったらコンパイルできないはずはありません。MacOS X ですら動くのに,いわんや FreeBSD をやです。というわけで,Qt-Bsch をもう一度作り直してみました。

いただいてきたのは,Qt-Bsch 0.25 のソースコードです(qbsc025.tgz)。これは,水魚堂さんのサイトで配布しています。

適当なディレクトリにアーカイヴを収めたら,とりあえず解凍です。できたディレクトリをたどってソースのあるディレクトリに移動します。

%  tar xvzf qbsc025.tgz
% cd qbsc025/qtbsch/

readme.txt によると,ここで qmake を使うことになっています。けれど,そのままやると早速次のようなエラーが……。

% qmake -project
% qmake 
QMAKESPEC has not been set, so configuration cannot be deduced.
Error processing project file: /usr/home/aian/tmp/qbsc025/qtbsch/qtbsch.pro

どうも,QMAKESPEC が設定されていないのがいけないみたい……。Google さんにお願いして調べてみると,QMAKESPEC は,プラットフォームとコンパイラの組み合わせを設定するもののようです(参照:「qmake のコンセプト」)。うちでは FreeBSD と g++ を使っているので,次のように設定してみます(shell は tcsh)。

% setenv QMAKESPEC freebsd-g++

他の環境では別の値になるみたいです。以下のようにやってみて,それっぽいプラットフォームとコンパイラの組合せを選ぶのがいいかもしれません。ここでは freebsd-g++ で大丈夫でした。

% locate qt/mkspecs

気を取り直して,先に進みます。環境変数を設定し直して qmake すると,ちゃんと Makefile ができました。あとは make です。この前やったように,QTDIR を設定しつつ make……

% qmake
% make QTDIR=/usr/X11R6
(snip)
ApplicationWindow::setAppCaption()' cannot be overloaded
application.cpp: In member function `void ApplicationWindow::setAppCaption()':
application.cpp:1062: error: `QFileInfo' undeclared (first use this function)
application.cpp:1062: error: expected `;' before "finfo"
application.cpp:1065: error: `QString' undeclared (first use this function)
application.cpp:1065: error: expected `;' before "caption"
application.cpp:1066: error: `caption' undeclared (first use this function)
application.cpp:1066: error: `finfo' undeclared (first use this function)
application.cpp:1074: error: `setCaption' undeclared (first use this function)
*** Error code 1

Stop in /usr/home/aian/tmp/qbsc025/qtbsch.

くぅっ……またしても……。エラーメッセージを見てみると,インクルードファイルを見付けられない模様……。Makefile によると,インクルードパスは INCPATH で設定されているみたいだから,

% make INCPATH=-I/usr/X11R6/include QTDIR=/usr/X11R6

これでいいはずです。ports からインストールしている場合は,/usr/X11R6/include にあるけれど,手でインストールしている場合は,他の場所(例えば /usr/local/include)になっているかもしれません。

ここではオプションで INCPATH を変更したけれど,Makefile を直接書き換えちゃってもいいと思います(なんとなく邪道の匂いはするけれど)。 再び気を取り直して,make したら,やっとこさ make が通りました。あとは,できあがった qtbsch をパスの通ったディレクトリにコピーするだけです。

まとめると……

% setenv QMAKESPEC freebsd-g++
% qmake -project
% qmake
% make INCPATH=-I/usr/X11R6/include  QTDIR=/usr/X11R6

という感じになります。

ビルドは以前より面倒になったけれど,回路図だけなら,やっぱり Eagle よりも Qt-Bsch だなぁ……。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN