C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

openSUSE-12.2にnative-client開発環境を入れる

これはリポジトリもへったくれも無いのだけど、

https://developers.google.com/native-client/sdk/download

まあ、native-clientの公式サイトの手順通りにごにょごにょすれば簡単に準備できる。以下、うちの方法。

% cd ~
% mkdir opt
% cd opt
% wget http://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/nacl_sdk.zip
 ...
% unzip nacl_sdk.zip
 ...
% cd nacl_sdk
% ./naclsdk list
 ...
% ./naclsdk update pepper_24
% ln -s pepper_24 pepper_target
% cd pepper_target/examples
% export NACL_SDK_ROOT=~/opt/nacl_sdk/pepper_target:$PATH
% make
 ...
% ./httpd.py
 ...

chromechrome://flags/ からnative-client系の設定を必要に応じて行い、 http://localhost:5103 にアクセス。デモを眺めるなどする。無事に眺め終わったなら http://localhost:5103?quit=1 とクエリーを出してデモサーバーを停止し、 NACL_SDK_ROOT も .zshrc などに記述して開発する準備は一段落。

なお、 chrome://flags/ のnative-client回りの設定が適切でない場合には、examplesなど見てもloadendイベントが来ないでロードに失敗したり、一見正常に動くかの様で実はイベント発行など一部機能が妙になる事がある。

デモを見るだけであれば最低限ネイティブクライアントが有効化されているだけで構わない。ハードウェア例外処理はONでも問題にはならなさそう。"Native Client GDB-based debugging"はデバッガーを挿す時を除いて有効にしない方が良さそう、一部イベントが発行されなくなったりした。"Portable Native Client"もONにしていても問題無さそう。"Native Client IPC Proxy"はONにした時点で通常にはnative-clientをロードできなくなるので注意。

…しかし…いい加減に何時まで GCC 4.4.3 なんでしょうね・w・ 執筆時点で最新のBeta扱いの pepper_24 でもGCC4.4.3のまま。実はnative-clientを私が積極的に使い出したくない唯一の理由がこの点で、かなりやる気に関わる・x・;