Symbian菜鸟问题 『* Can't execute cpp at C:/Symbian/6.1/Shared/epoc32/tools/epocrc.pl line 161.』问题解决方案

许多新人在XP下配置Symbian开发环境,在编译的时候都会遇到这样的问题:

Building resources from Helloworld.rss
 perl 
- S epocrc.pl  - " ....................SYMBIAN.1SERIES60SERIES60EXHELLOWORLDGROUP "   - " ....................SYMBIAN.1SERIES60SERIES60EXHELLOWORLDINC "   - I -   - " ....................EPOC32INCLUDE "   - DLANGUAGE
_SC 
- " ....................SYMBIAN.1SERIES60SERIES60EXHELLOWORLDGROUPHELLOWORLD.RSS "   - o " EPOC32RELEASEWINSUDEBZSYSTEMAPPSHELLOWORLDHELLOWORLD.rSC "   - h " ....................SYMBIAN.1SERIES60SERIES60EXHELLOWORLD
GROUPHELLOWORLD.rs ~ "  -t " EPOC32BUILDSYMBIAN 6.1 SERIES60SERIES60EXHELLOWORLDGROUPHELLOWORLDWINSUDEB "
*  Can ' t execute cpp at C:Symbian.1Sharedepoc32 ools/epocrc.pl line 161.
NMAKE : fatal error U1077:  ' perl '  :  return  code  ' 0x9 '
Stop.
Error executing c:windowssystem32cmd.exe.

HELLOWORLD.APP 
-   1  error(s),  0  warning(s)

我在网上搜索了很多关于这个问题的讨论,但往往讨论的最后都没有得到一个解决办法。最后还是在nokia的论坛上找到了答案。(不过找答案的过程中听到了许多对nokia sdk的骂声,恩……C++的东西API乱七八糟没有条理我还是有一点点切身感受的。相比而言,java简直是天堂。)

首先你要保证你的sdk与工程文件在同一个分区下,因为sdk是不区分盘符的。最好把perl啊vc啊sdk都装在C盘,工程也建立在C盘,sdk目录不能带空格。

问题分析的原贴在这里:http://discussion.forum.nokia.com/forum/showthread.php?t=20556(作者“give the SDK on Windows XP two thumbs down.”,可见其仇恨=。=)

打开epocrc.pl文件,第155行~第161行是这样的。

$cpp_spec .= "-D_UNICODE " if ($unicode);
$cpp_spec .= "</"$sourcefile/"";
print "* $cpp_spec > $rpp_name/n" if ($opt_v);
open RPP, ">$rpp_name" or die "* Can't write to $rpp_name";
open CPP, "$cpp_spec |" or die "* Can't execute cpp";

perl在第161行引用cpp_spec这个变量时发现这个变量是</"$sourcefile/",然后程序就在这里出错了。
貌似Perl安装在XP下时,一旦语句中出现'<'或者'>'就会出现这样的问题,但是在NT下就会运行的非常好。

所以最终的解决方法非常简单,把第156行的
 $cpp_spec .= "</"$sourcefile/"";
改成
 $cpp_spec .= "/"$sourcefile/"";
就没有问题了

你不用尝试着一遍又一遍的重装开发环境甚至重装操作系统了:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值