2017年05月 / 04月≪ 12345678910111213141516171819202122232425262728293031≫06月

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--:--  |  スポンサー広告  |  EDIT  |  Top↑

2008.07.17 (Thu)

Zaurus 上で Qtプログラミング 00

「Zaurus」と「プログラミング」、どっちのカテゴリにしようか迷うな。
まぁ今回はZaurusにしときます。


「Zaurus上でゲームを作るぞ~ p(・ω・´)」 なんていったものの、ネトゲばっかやっていて、最近は全くやってませんでした。
せっかく本まで買ったのに。

昨日~今日にかけて、一泊で静岡の方へ行ってきました。
つまり、その間はネトゲなんてもってのほか。
というわけで、Zaurus持って行ってQtの勉強をちょっとだけやりました。

で、どうやったかというと、本を読んでいたわけではない。
Qtを開発したTROLLTECK社がQtリファレンスを公開しているんだけど、それを翻訳しているものがこのページに掲載されている。
この翻訳はまだ途中ではあるが、わかりやすく翻訳されていて非常にいい。
で、この翻訳されたリファレンスをZaurus上に落としていたため、それを見てました。


このリファレンスには「チュートリアル」という項目があって、そこにはQtの簡単なソースが掲載されている。
それをコピペとかして動作確認をしつつ、プログラムを読んでいたわけなんだが、1~6までは正常にmakeできたものの、7や8番目の内容に関してはmakeするとエラーが生じる。
コンパイルして、オブジェクトファイルは正常に作成されるのだが、リンクして実行可能ファイルを作成する際にエラーが生じた。

エラーの内容は次のようなものである。(7番目の内容について)



lcdrange.o: In function `LCDRange::LCDRange(QWidget *, char const *)`:
lcdrange.o(.text+0x104): undefined reference to `LCDRange::QPaintDevice virtual table`
lcdrange.o(.text+0x108): undefined reference to `LCDRange virtual table`
collect2: ld returned 1 exit status
make: *** [a.out] Error 1




参考Webページ
C/C++の落し穴
nelnalog.note

上のWebページによると、どうやらクラスを仮想継承してリンクするところに問題があるらしい。
原因は 「宣言しているのに定義していないこと。」 だそうだ。
だが、「lcdrange.h」や「lcdrange.cpp」のどこにも「virtual」なんて記述はない。
どっかで勝手にvirtual扱いにされているのか?
まぁ、よくわからん。

試しに、VisualStudioでコンパイルしてみることにする。
と思ったけど、予定変更。
インストールし直してみる。




とかなんとかいろいろ奮闘していたけど、原因がわかったっぽい。
今インストールされているQtはQt4という最新のやつ。
しかし、参照していたマニュアルはQt2という、かなり古い形式だった。
そこに載っているソースは、もちろんQt2の形式で書いてあり、Qt4とは形式が結構変わっている。
そのため、エラーが生じたようだ。
つまり、バージョンの違うQtのプログラムをコンパイルしようとしていたわけだ。
なんで、以前買った本のプログラムをコンパイルしている。
今のところ、上手くいっているので問題なし。



ちなみに、文章に敬語とか入り乱れて統一性のない文章になってますが、それは仕様です。
メモ程度の気持ちで書いているので、細かいことは気にしないでくださいな。
別に、誰かに注意されたってわけじゃないけど、ふと気付いたんで書きました。


テーマ : プログラミング ジャンル : コンピュータ

17:13  |  Zaurus  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

*Comment

コメントを投稿する

URL
COMMENT
PASS  編集・削除するのに必要
SECRET  管理者だけにコメントを表示  (非公開コメント投稿可能)
 

▲PageTop

*Trackback

この記事のトラックバックURL

→http://gasser.blog114.fc2.com/tb.php/212-d8b31ac9

この記事にトラックバックする(FC2ブログユーザー)

この記事へのトラックバック

▲PageTop

 | BLOGTOP | 

 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。