ビューアをビルドしてみた

リンデンビューア3.5.0が日本語入力の対応コードを壊してしまっていて日本語チャットが不便になっていますが,OSGridの推奨ビューアであるKokua3.5.0も追従してしまっていて同じく不便になっています.Kokuaのほうに報告しましたがリンデンが直したら適用しますとの回答だったりして,リンデンビューアが直らないと他のビューアも追従してしまう恐れに気づきました.

このタイミングでビューア側をいじる予定ではなかったのですが,急遽リンデンビューアをビルドしてみました,C言語はわかりますがWindowsソフトの開発経験は無いのでそこからです(で主にそこで詰まりました).

追記:環境をかなりかき回されるので,フルバックアップを取ってから作業を始めることをお勧めします.更に追記:かき回すのはVCですビュアーのために特別かき回されるわけではありません.まず一番目の情報源はリンデンのウィキで,それを見ながらVisual Studio と SDK のインストール/更新します,でここがビューア自体とは関係ないわけですがはまりどころでWindows SDK(以下WinSDK7.1)がうまくインストールできません.この辺を参考に、何とかインストール.Windows SDK 7.1 用 Microsoft Visual C++ 2010 Service Pack 1 コンパイラ更新プログラムを入れ忘れたのかはまりました.(WinSDK7.1を入れた後,入れたつもりだったのだけどJune 2010 DirectX SDK(以下DXSDK)を入れた後にもう一度入れるまでダメだった).一度試しに何も書かないWin32プロジェクトを作ってちゃんとビルドできるか確認してから次に進むべきでした.追記:WinSDK7.1は必須でなくVisual C++ 2010 Express(以下VC Express)付属のWinSDK7.0aでもビルドできるという情報もあります,私は既に入れてしまったので未確認ですが,その場合VC Express+DXSDKで済むので楽かもしれません.

必須の開発ツールのインストール,の項はそのままで大丈夫だと思います先の項目ではまっていることに気づかずいろいろなバージョンを入れなおして最終的に書かれているバージョンにしましたが,多分マイナーバージョンまでが同じ範囲の最新版でも大丈夫かと思います.追記Autobuildも入れてください.

VC2010 の設定,この項目はいったん設定してみたのですが,どうもインストールが正常にできていればちゃんと設定済みの内容のように思います、パスの設定については親の設定を継承するに切り替えて戻してしまいましたがビルドできてます.

私の環境は今回Windows7 Home Premium 64bitを用意できたのですがこの場合だと使えるのはVisual Studio コマンドプロンプト (2010)のほうでした,なるべく短いパスのフォルダを用意して,そのフォルダで
hg clone http://hg.secondlife.com/viewer-release
今回何度もやり直すことがあったので毎回サーバからDLするのは時間がかかり負荷にもなるので
hg clone viewer-release x86
のようにさらにクローンを作って作業しました
cd x86
cp autobuild.xml my_autobuild.xml
autobuild configure --config-file my_autobuild.xml -c ReleaseOS -- -DLL_TESTS:BOOL=FALSE -DPACKAGE:BOOL=FALSE -DFMOD:BOOL=FALSE
なるべく最小の構成でビルドを試みます今回日本語入力周りを見たいだけなのでサウンド関係のモジュールであるFMODは組み込んでいません

Copying icons for test
-- Version of viewer is 3.5.0.0
-- Configuring done
-- Generating done
-- Build files have been written to: D:/slvbuild/x86/build-vc100
Editing solution: SecondLife.sln
Looking for existing VisualStudio instance...
Didn't find open solution, starting new background VisualStudio instance...
Reading .sln file version...
Using version: VC100...
値を Null にすることはできません。
パラメータ名: type
Quitting do to error opening: D:\slvbuild\x86\build-vc100\SecondLife.sln
ERROR: default configuration returned 1
For more information: try re-running your command with --verbose or --debug

D:\slvbuild\x86>
のように表示されて止まったのですが.slnが出来ているのであれば成功のようです

コンパイルはExpressの場合Autobuildでは出来ないそうです(リンデンのほうは参考にしませんでした)
メタバース技術研究会のSecond Life Viewer 3 の再コンパイルのVC++ 2010 によるビルド(コンパイル)を参考にしました
warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
が大量に出ますがコードページが違うのが原因なのでシステムロケールを変更しました
システムロケールを変更”米国(英語)”に
コントロール パネル\時計、言語、および地域 >地域と言語 >管理
>Unicode 対応ではないプログラムの言語
再起動が必要なのでどっちが面倒か一概に言えませんがリンデンの環境ではコードページ932であるはずも無く今後もこの状況は続くと思われるのでロケールを合わせるほうを取りました.

.\build-vc100\lscript\lscript_compile/indra.lでリンクエラーが起こりますが
.\build-vc100\lscript\lscript_compile/indra.y.hpp:176に
extern “C”を追加することで対処しました
extern "C" int yyparse (void);
こういう対処法もあるそうです

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です