開発日誌
今月の写真
このページについて
このページは 過去の日記 - 2006年1月 です。
最新の日記・他の月の日記
2006年01月27日
デスクトップでLinuxな生活

 Linuxな生活を始めて、そろそろ2週間になりますが、その間に色々と導入してみたので、簡単に紹介します。Windowsは立ち上がるようになりましたが、ATOKの辞書ファイル等、多数のファイルが破損し、以前と同じく不安定なのでSUSEを起動して使っています。今のところ、ブート時のDHCPからIPアドレスを取得する時以外はフリーズすることはありません。

 まずは、サウンドドライバ。RealtekからALC850用のALSAドライバをダウンロードしてインストールしたのですが、GNOMEのイベント音は鳴るものの、他のソフトでは音が出ません。そこでNVIDIAからnForce4用のOSSドライバをダウンロードし、インストールすると、KDEのイベント音やWine(Windowsエミュレーター)で起動したゲーム、Kaffeine、XMMSで音が出るようになりました。ただし、ログインする前に、rootでコンソールログインし、
modprobe nvsound
とする必要がありますが…。ブート時にこのコマンドを自動実行すればいいのですが、その点は自分の勉強不足です。

 次に導入したのはEclipse+CDT。Javaなので、苦労はしないであろうと思って導入したら、実際に存在するライブラリ(so)ファイルを開けないとエラーが…。Google先生に聞いてみると、本家に64bitと32bitを混在させているとそうなるとかなんとか書いてありました。JREのバージョン情報を見てみると、SUSE10導入時にインストールされたJREは1.4の32bit版でした。(ダウンロードしたEclipseはx86_64)JRE1.5のx86_64をインストールし、Eclipseの起動オプションで、JREを指定して起動すると、無事立ち上がりました。

 iostreamだけを#includeした状態では、Linux版のほうが、コード補間が速く感じました。ただ、Delphiなどに比べると、遅い…。コンソールに文字を出力するだけのプログラムは無事にコンパイル&実行できたので、問題なさそうです。

 さて、最後はLazarusです。何度かここで出していますが、一応紹介しておくと、クロスプラットフォームでオープンソースなDelphiです。本家のrpmをインストールして、コンパイルすると、リンク時に失敗するので(原因と思われることは後述)、x86_64版ではないのが原因と考え、Free Pascal Compiler(FPC) 2.0.2 x86_64でLazarusのソースをコンパイルしようとしたのですが、
definetemplates.pas(3398,6) Error: Incompatible types: got "Char" expected "Int64"
とエラーが出てコンパイルできませんでした。DailySnapshot版はコンパイルできたのでこれを導入してみましたが、コンパイルは出来るものの、不安定です。

 今はアンインストールしたため、確かではないのですが、SUSEではライブラリパスをfpc.cfgで設定する必要があるようで、x86_64では
-Fl/opt/gnome/lib64
を/etc/fpc.cfgに追加する必要がありました。最初はこの作業をしていなかったので、これが原因かもしれません。このfpc.cfgが/etc/以外の場所に置けるのかが謎なので、32bit版と64bit版を導入することはできないかもしれません。

最後にデスクトップ画像を
デスクトップ画像 縮小

14:10 | コメント (0) | トラックバック

2006年01月18日
デスクトップのメインOSはSUSE Linux10!

 先日、S3モードのスタンバイから復帰しなかったので、いつものようにリセットすると、次に起動したときにいつものようにディスクチェックが始まると、流れるように修復した箇所が出てきました。その後、
Unkown Hard Error
とブルースクリーン。何度起動してもセーフモードでも、Windowsロゴ表示後にこれが出ます。

 どうやら、レジストリが破損したようで、HDD自体は壊れていないため、SUSE10は起動できます。とりあえずノートと同期していないソースコードをコピーするための方法を探すことに。いつもはファイルの共有でバックアップツールを使っているので、LinuxからWindowsとファイルの共有する方法…って大学のシステムで使っているSambaだな。YASTで設定したらすぐに使えてしまいました。ソースコードが入っているドライブはLinuxでの利用を考えてFAT32でフォーマットしてあったのですが、そのほかのドライブがNTFSだったので、書き込みができないのがちょっと困った。

 いつものように、ノートPCからファイルを取り出せるし、レジストリをシステムの復元の自動保存から復元したとしても、結局はWindowsを再インストールすることになるので、しばらくLinuxな生活を送ることにしました。ついでに、いつものフリーズはドライバが原因なのかハードウェアが原因なのかを調べることができるので…。

 少々苦労してFirefox1.5を導入し、Opera(Qt Static版でなければ日本語入力ができない)のブックマークとRSS(Mailディレクトリ中の設定ファイルのパスを変えればそのまま使える)をコピーし、せっかくなのでGNOMEのテーマをダウンロードして…と作業していくと、なかなか快適な環境ができあがりました。日本語入力もSUSE10からSCIM+Anthyなので、使いやすく、Goodです。サウンドだけが上手く機能していませんが。

 そろそろ大学に向かわないといけないので、続きはまた今度。

参考
C0000218エラー(UNKNOWN HARD ERROR)を考える記事

08:46 | コメント (0) | トラックバック

2006年01月03日
VS2005を使ってみる

 VS2003.NET購入後も、なんとなくBCC Developerを立ち上げ、プログラミングをしていたのですが、デバッグのためにexeでコンパイルしていた音楽再生ライブラリを複数のDLLに分割してコンパイルしたところ、再生すると制御が返ってこないという問題に遭遇し、デバッグ機能豊富なVS2005でコンパイルしてみることにしました。

 最初はライブラリファイルへのリンクの仕方さえも分かりませんでしたが、(プロジェクトオプション→リンカ→入力→追加の依存ファイルでできます)なんとかコンパイル完了。VC++のほうが文法チェックが厳しく、いくつかエラーが出ましたが、大したことではありませんでした。

 そして困ったのが、実行時にアプリケーション初期化エラーが…。デバッガでステップ実行を繰り返すと、どうやらwuvorbis.dllのLoadLibraryが失敗しているようでした。結局、文字セットをマルチバイトにすると直りましたが、UNICODEのままで、TEXTマクロを使えばなんとかなるという問題ではなさそうです。(この辺はもう少し勉強しておきます)

 この時に、正規表現置換を使ったのですが、VS2005では部分式が()ではなく{}でした。大学の先輩の「正規表現が使えるから秀丸を使う」という話を聞いて、本(Cマガ01年12月号、そろそろ返さなきゃ)を片手に使い始めた正規表現ですが、最近やっと少し使えるようになりました。TeraPadには正規表現置換がありませんが、同じTEditor系のHeTeMuLuCreatorや、BCCDeveloperには正規表現置換があります。

 って話が逸れました。結局の所、制御が返ってこなくなったのは、自分の横着が原因で、
ONDEBUG(std::cout << "SetEvent:" << SetEvent(pthprms.hEvent) << "\n";)
とやっているのが原因でした。ONDEBUGはマクロで、()内の内容を実行しないように、DLL化したときに設定したところでした。SetEvent関数が呼び出されないので、いつになっても制御は返ってこない…はずです。

 Microsoftの策略にはまったといえばそうですが、やはりVisualStudioは便利です。ただMSVCR80.dllなるものを一緒に配布しなければいけないのが面倒ですが…。

21:17 | コメント (0) | トラックバック

2006年01月01日
謹賀新年

 AM4:30、自宅を出発。星が出ているので天気は問題なさそうだ。…

 実は、こんな出だしで写真ページに「06年江ノ島の初日の出」と題して記事を書こうかと思っていたのですが、写真の出来がよくないので止めました。(おまけに、江ノ島は曇っていて、初日の出を拝むことはできませんでした)今朝撮った写真のうち1枚をこのページの左上の今月の写真に貼っておきました。

 例年、年末年始は京都で過ごすため、初詣は上賀茂神社や北野天満宮に行きますが、江ノ島神社の混雑度には驚きました。階段が人で通れなくなり、全く列が動く気配がありませんでした。これが関東の初詣事情?海にはこの寒い中泳ぐ人達が…。

 ということで、今年もよろしくお願いします。

23:59 | コメント (0) | トラックバック