Experience Prototypistのマルチリンガル子育て+プログラミングブログ

Design Thinking、語学(英語、中国語、韓国語)、日中マルチリンガル育児、littleBitsやRaspberry Pi, Arduinoを使ったExperience Prototypingネタ。

環境変数EPOCROOTに関連するコンパイルエラー

Symbianアプリケーションの開発作業をしていると、次のようなメッセージが出力されてビルドできない場合がある(改行を加えている)。

Error : Symbian Resource - EPOCROOT environment variable must be capitalised
BEGIN failed--
compilation aborted at C:\Symbian\8.0a\S60_2nd_FP2_CW\epoc32\tools/E32env.pm line 51.
Compilation failed in require at C:\Symbian\8.0a\S60_2nd_FP2_CW\epoc32\tools/epocrc.pl line 27.
BEGIN failed--
compilation aborted at C:\Symbian\.0a\S60_2nd_FP2_CW\epoc32\tools/epocrc.pl line 27.

ここで言っているのは、環境変数EPOCROOTを大文字で設定しろ、ということなのだが、大文字で設定していても問題は解決しない(そもそもバージョン7以上を使用しているのであれば、EPOCROOTの指定は必須ではない)。

この件に関しては、NewLC - Symbian OS - Overview of the Compilation systemにも説明があるのだが、Windowsのシステムディレクトリ(たとえば、C:\WINNT\SYSTEM32)にパスが通っていないために、パイプの生成に失敗していることのようだ。とはいうものの、Windowsのシステムディレクトリへのパスは、デフォルトで設定されているはずのものであり、コントロールパネルからわざわざ手で追加設定しなければならないものではない。

この場合、コマンドプロンプトからPATHと入力して、出力されるパスの中の環境変数が正しく展開されているかどうかを、まずはチェックすべきである。「%SystemRoot%\system32」のように展開前の状態で出力されているのであれば、実際にはパスが通っていないのと同じなので、5月20日のエントリ「環境変数が展開されない」(http://www.mfunaki.jp/archives/2005/05/20/#000424)で紹介した方法でレジストリの修正を行えば、問題は解決する。