也是在另外一個部落格中看到的,不過現在在網上竟然搜不到了,還好我記錄了下來:
如果用Carbide編譯任意工程,都出現類似如下的錯誤:
===Build Command = /c abld build WINSCW UDEB -v===
C:/WINDOWS/system32/cmd.exe /c abld build WINSCW UDEB -v
make -r -f "/Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Symbian/Carbide/workspace/TestListBox/group/EXPORT.make" EXPORT
Nothing to do
make -r -f "/Symbian/9.1/S60_3rd_MR/EPOC32/BUILD/Symbian/Carbide/workspace/TestListBox/group/WINSCW.make" MAKEFILE
Bareword found where operator expected at C:/Symbian/9.1/S60_3rd_MR/epoc32/tools/perllib/params.pm line 461, near "New CParamItem"
(Do you need to predeclare New?)
Bareword found where operator expected at C:/Symbian/9.1/S60_3rd_MR/epoc32/tools/perllib/params.pm line 466, near "New CParamItem"
(Do you need to predeclare New?)
syntax error at C:/Symbian/9.1/S60_3rd_MR/epoc32/tools/perllib/params.pm line 461, near "New CParamItem"
syntax error at C:/Symbian/9.1/S60_3rd_MR/epoc32/tools/perllib/params.pm line 466, near "New CParamItem"
Compilation failed in require at C:/Symbian/9.1/S60_3rd_MR/epoc32/tools/perllib/args.pm line 19.
BEGIN failed--compilation aborted at C:/Symbian/9.1/S60_3rd_MR/epoc32/tools/perllib/args.pm line 19.
Compilation failed in require at C:/Symbian/9.1/S60_3rd_MR/epoc32/tools/cshlpcmp.pl line 58.
BEGIN failed--compilation aborted at C:/Symbian/9.1/S60_3rd_MR/epoc32/tools/cshlpcmp.pl line 58.
make[1]: *** [MAKMAKE] Error 255
make: *** [MAKEFILEBUILD_HELP] Error 2
解決方案有兩種:
1 安裝Activeperl 5.6.1,高版本的Perl編譯可能出現上面問題。
2 編輯檔案
/devices/S60_3rd_FP2_SDK/epoc32/tools/perllib/params.pm
和檔案
/devices/S60_3rd_FP2_SDK/epoc32/tools/perllib/args.pm
在它們開頭的use語句後分別加入:
#加入到params.pm中
sub CParamItem::New;
sub CParamsEntry::New;
#加入到args.pm中
sub CArgsSpec::New;