/var/log

技術系のあれこれ。※内容は個人の発言であり、所属する組織を代表するものではありません。

qmake ってなぁ〜にぃ???

突如
研究がらみのことでレーザーレンジファイダを使う必要性がorz
(僕は研究ではなくシステム開発の担当ですがw)





つかってるのが
北陽電機のスキャナ式レンジセンサ(測域センサ)[URG-04LX-UG01]
http://www.hokuyo-aut.co.jp/02sensor/07scanner/urg_04lx_ug01.html


開発用のライブラリとかサンプルが
たくさん公開されているので,意外と情報には事足りないと思ってたんですが...







そのライブラリを
Macでインストールする時にハマってしまった.

周辺の環境を示しておくと...
Finkで,Boost1.41 と SDL1.2.14 がインストールした.

あと,SDL本家から一応 Xcode で使うためのFrameworkも落とした.


そんで
urg-0.8.6というライブラリを使ってみようと試みました.


./configure
make
sudo make install

の3コンボで終了するつもりが...



makeできないorz


まず引っかかったのが

extern int snprintf(...) 

この宣言が問題になっていたみたい.

→→→ コメントアウトで回避しましたw




これで順調にコンパイル終了かと思ってたら
今度はsymbol not found と怒られてしまった(> <)


見た目に
Cocoaフレームワークのライブライリをうまくリンクできてないとわかったので

./configure CFLAGS="-framework Cocoa"

で回避!!


あとは通常通り make & make install でインストール完了...








のつもりが!?

boost 系の機能を使ったAPIが全滅orz


どうも./configureの時点でうまく boost を発見してくれてないようでした.

しゃーないので

./configure --help

を参照して,手動でライブラリを指定する方法で
なんとか boost 系の機能を使ったAPIもおkな感じになりました〜♪





そんで
サンプルアプリケーションをqmakeをつかって
Xcodeプロジェクトへ吐き出してもらおうと思ったんですが...

qmake -spec macx-xcode

なぜか
Xcodeで設定したユーザライブラリの設定が反映されない...

/sw/include/boost/ を設定して
boost library のヘッダを読めるようにしているのに...


コンパイルエラーのログを確認すると
/usr/include は読みにいってるのに/sw/include/boost は無視.


しょうがないから

cd /usr/include/
sudo ln -s /sw/include/boost .

してやって無理矢理 /sw/include/boost を見るようにしました.


これで
XcodeからQtのプログラムをコンパイルして
サクサクとサンプルアプリケーションが動くようになったので
機器のチェックetcは完了したのですが...




なんか,気持ち悪い(><)

うーん...qmakeとかつかったことないから仕組みがわからんです.



そもそもMakefileですら
簡単なものしか書いたことがないので,
qmakeのファイルなんて自分で修正できませ〜ん.





にしても,自分の勉強不足を痛感した日になってしまいました.
もっと精進しないと!!