symbian openc 使用 编译 问题

注意:

1.mmp中把estlib.lib放到libc.lib和libstdcpp.lib后面

2.不要用include/libc,要用include/stdapis

 

 

1.select返回-1

分享解决方法:
mmp中把estlib.lib放到libc.lib和libstdcpp.lib后面
原因:estlib.lib估计和标准C的Socket有冲突,会导致ioctl和Select都以-1返回。
做OpenC网络编程的留意一下

 

 

2.

libc和stdapis是symbian的native c 支持和plugin c支持。PIPS is latest environment and it is fully compliant to standard C and POSIX standard. The previous library ESTLIB comes for libc is depreciating.

epoc32/include/libc + estlib.lib is the old implementation of the standard C libraries,这个是老的实现,现在都用epoc32/include/stdapi + libc.lib (+many other libs) is the Open C/C++ implementation, it is maintained regularly (the most recent release is Open C/C++ 1.75, released last week),


 

  1,安装:
             从Nokia网站下载OpenC插件,然后解压,根据其releasenotes.txt文进行安装,配置,网站上还可以下载入门演示录相。在运行时,要按要求,在运行手机上提前安装相关的插件sis文件,也可以在开发的发布 sis中一并加入运行插件。相关方法可按插件的release Notes来进行打包。
     2,编译影响:
            在原来用SymbianC++中C兼容库的地方要进行如下改动:a,在头文件目录上加入%EPOCROOTincludestdapis,删除原来的%EPOCROOTincludelibc.
            在链接库上删除estlib.lib,加入libc.lib.同时请注意。libc.lib 一般放在最前面,不能放在eikctl.lib等库的后面,否则就会出现一堆链接上的错误,且从错误信息上看不到明显的链接错误信息,我在编译一个项目时花了很长时间才解决这样奇怪的问题。
   3,对动态库的影响:
           在动态库中使用了OpenC竟然一直出现无法动态加载。首先在调试环境下,如果用carbide.vs工具时,用OpenC生成的动态库,在模拟器上无法成功加载,且一直返回-2错误,查相关资料,连Symbian所有资料都没有明确的说明。这应该是carbide.vs工具的问题,换成了codeworroir可以成功编译成debug版本。这样的问题在使用SymbianC库时,也出现这样的问题,就是carbide.vs时,调试版本,不能加estlib.lib,不然不能成功加载,而编成release发布 版本时,则必须加estlib.lib,否则无法成功编译。,carbide.vs,,真拿Nokia没办法,总出这样的问题。想说爱你,不容易。
 4,对运行影响.
      一个exe使用OpenC倒没有什么,只是如果使用了使用OpenC的动态库,则程序会无法正常运行。GUI不能正常显示,当我删除安装在手机上为OpenC的运行环境的插件 stdioServer.sis后,则GUI正常显示,百思不得其解,只在读插件的release notes时,在文本里提醒到:只为调试目的,最后不要安装到发布手机上。真是奇怪:)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值