symbian openc 使用 编译 问题

来源:互联网 发布:手机淘宝申请售后退款 编辑:程序博客网 时间:2024/06/06 13:06

注意:

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时,在文本里提醒到:只为调试目的,最后不要安装到发布手机上。真是奇怪:)

原创粉丝点击