(转载)symbian使用arm5编译器
原来是gcc编译的工程,完成后被要求添加第三方库,但是第三方只提供arm5的库,不肯提供gcc的。
下载RVCT22,CSDN提供很多免费版的,然后按照下面文章设置就可以了,第一篇就够了,第二篇没用。
转载自:http://hi.baidu.com/71167609/blog/item/959b193ded7d51d69e3d6233.html
Carbide C++使用ARM编译器编译
2010-12-08 15:25
使用Carbide C++开发Symbian平台上的应用时,编译到真机上一般使用GCCE编译器,因为Carbide C++自带了GCCE编译器。Carbide C++的编译选项中也提供了ARMV5选项,如果直接选择这个选项来编译真机程序,会失败,因为Carbide C++本身没有带RVCT编译器。RVCT是Symbian平台的收费编译器,生成的文件,相对于免费的GCCE,性能更优,体积更小,对代码的检查也更严格。但是RVCT价格也很昂贵,普通开发者一般难以承受。网上流传有RVCT编译器的破解版本,但是使用要小心,如果使用破解版,再去使用快速签名,可能会带来官司。
使用破解版RVCT编译器的步骤如下:
1 下载RVCT的破解包。
2 使用破解包中自带的patch程序patchRVCT目录下的所有exe。
3 运行keygen.exe,生成license.dat。
4 设置两个环境变量:
LM_LICENSE_FILE 变量值是license.dat的完整路径(注意是完整的包含路径的文件名,不是目录)。
PATH中添加RVCT根目录。
5 在命令行中运行armcc --vsn就可以了,这个时候就可以在Carbide中选择ARMV5编译了。
常见问题:
1 提示RVCT0_0.h No such file or directory。一般是因为工程没有重新导入,添加了RVCT编译器后,需要重新import 工程文件。
2 重新导入后,还是报错,这个时候,需要Clean一下(首先需要在Carbide C++-》Prefernces->Carbide C++->Build->SBSV1中把Clean Level设置成Level 2)。
基于RVCT编译器的symbian平台搭建(完成版)
基于RVCT编译器的symbian平台搭建(完成版)
rvct是symbian平台的收费编译器,相比于免费的gcce,性能更优,而且生成的文件小的多。 rvct价格昂贵最低也要五六万,所以开发成本有限的小公司只能选择破解。 但请注意,如果你的软件要发布,要express signed,最好别用破解的rvct,否则小心吃官司。
下面就是破解rvct的全部步骤
一.rvct编译器
1.下载crack包
2. patch 当前目录下的所有的exe(注意这里patch.exe右键属性里把兼容性设置为"用兼容模式运行win98",才能一个个选择文件.
3.运行keygen.exe,生成license.dat,注意电脑当前时间要准确,不然license可能出错
4.设置两个环境变量
LM_LICENSE_FILE 变量值为rvct2.2的license的路径。
PATH 值为rvct2.2根目录
5. 在命令行模式运行armcc --vsn 就OK了。这里可能会碰到错误信息“ Cannot obtain license for Compiler (feature compiler) with license version >= 2.2”, 解决办法是重新patch,重新生成license.dat。若还不行,就是你电脑有“未来”的文件,比如当前时间是2008.12.31,而硬盘里能找出很多2009年的文件,也会导致license出错。可用touchpro批量改时间戳,改完再重新生成license。
carbide命令行编译工程:
cd group bldmake bldfiles abld build armv5 urel makesis yourproject.pkg signsis yourproject.sis yourproject.sisx **.cer **.pem 后面2个是钥匙。
3. rvct命令行可运行,在carbide v1.3却始终不行,以为是日期超前或carbide版本不对,折腾了一天多,回头翻“ARMV5 build targets”文档点击进入,找到了原因,rvct 2.2 build 435只支持到symbian os v9.2,v9.3需要rvct2.2 build 559, 所以只能在symbian v9.1用破解的rvct,因为总不可能要arm技术人员帮你升级吧...
二.s60下调试程序
5.armv5下编译生成的lib应该在epoc32/release/armv5/lib,而现在都生成在epoc32/release/armv5/udeb里。 解决方法: testlive555.mmp里LIBRARY groupsock.lib改成STATICLIBRARY groupsock.lib, 即可解决
6. 无法生成usageenvironment.lib, 解决办法:头文件冲突,groupsock.mmp里去掉SYSTEMINCLUDE /epoc32/include/libc/sys
7. ctime,EAGAIN未定义,而mmp里确实有include,解决办法:可能是头文件冲突,把SYSTEMINCLUDE /epoc32/include/stdapis移到最前面,问题解决。
8. live555库已经调通了,mpeg4解码库还剩几个问题,原因应该是不同编译器宏定义不一样
9. 当一个工程.c和.cpp文件混在一起时容易出问题。rvct用c++规则编译c程序导致很多问题,统一都用cpp后 编译通过.
10.mpeg4解码库编译没错却没有生成lib,解决办法: mmp尾部加上
#ifdef ENABLE_ABIV2_MODE DEBUGGABLE #endif
至此程序在s60 SDK下已经调通并生成sis,下面要用移植到UIQ 3.0 SDK上
三.uiq3.0下调试程序
对于不同平台和SDK之间程序移植所出现的错误,大体分为五种,没什么复杂的属体力活。
1. mmp中没有包含SYMSTEMINCLUDE
2. mmp中SYMSTEMINCLUDE顺序不对,造成冲突
3. 引起头文件重复,造成冲突
4. 指定路径下不存在该头文件
5. 头文件中不存在你要的函数声明,从别的地方拷过来
(转载)symbian使用arm5编译器相关推荐
- [MATLAB][转载]MATLAB2018b的VS2017编译器配置
MATLAB2018b和VS2017的混编 matlab下mex -setup命令选择VS编译器 matlab下mex -setup命令选择VS编译器 前提你已安装了matlab和visual stu ...
- powerpc linux交叉编译器,[转载]搭建PowerPC交叉编译器 二
第三部分 搭建过程 3.1 创建过程概述 这个GUN工具链的创建过程可以分为5步 Step 1:安装基于PowerPC的linux头文件: 备注:创建头文件是编译库文件所必须的,这一步只要在创建gli ...
- 方舟编译器学习笔记分类与导读
方舟学习笔记系列,从方舟开源到现在,已经写了50多篇,保证了每天一篇的更新频率.篇数增加之后,文章的分类以及文章之间的关系,逐渐变得复杂起来.本文将对已发表的学习笔记系列进行分类和导读,方便读者更好的 ...
- ASP错误代码中文说明大全:
ASP错误代码中文说明大全: ASP 错误代码 中文描述 ASP 0100 内存不足 ASP 0101 意外错误 ASP 0102 需要字符串输入 ASP 0103 需要数字输入 ASP 0104 不 ...
- 一本你必须知道的.net
<你必须知道的.NET> 作者简介:王涛 微软C# MVP,高级软件工程师,机械工程硕士,主要研究方向为.NET底层架构和企业级系统应 用.现就职于某软件公司负责架构设计.软件开发和项目管 ...
- Symbian s60入门(转载)
Symbian s60入门 转载自 http://dev.csdn.net/htmls/62/62134.html 摘要: Symbian OS 是目前市场占有率最高的移动设备 OS .本文是 S ...
- 如何升级Symbian Carbide C++的GCC编译器版本
参考资料: How to use GCCE 4 with Symbian SDKs Carbide C++的编译器 在Symbian开发工程中,Carbide C++是非常好用的开发工具,目前提供GC ...
- (转载)(官方)UE4--图像编程----着色器开发----HLSL 交叉编译器
HLSL 交叉编译器 这个库将 高级着色语言 (HLSL) 着色器源代码编译成高级中间表示法,执行独立于设备的优化,并生成 OpenGL 着色语言 (GLSL) 兼容源代码.这个库在很大程度上基于 M ...
- symbian学习转载
[虎.无名]学习Blog 诺盛电信咨询:移动支付是什么- -| 回首页 | 2006年索引 | - -Nokia 6681菜鸟必修课 zt 腾达智能社区:Symbian基础类知识- - http:// ...
最新文章
- Oracle 11g安装
- UNITY C#内存泄漏
- yenv - 一个使用 JAML 文件管理环境的 Node.js 工具
- LinkCutTree 总结
- 分部方法 partial
- 自定义scoll样式
- Python获取硬件信息(硬盘序列号,CPU序列号)
- 使用C#发送Http 请求实现模拟登陆(以博客园为例)
- k8s—centos7安装部署NFS服务器和客户端及基于nfs的动态存储storageclass使用总结
- Eclipse配置国内镜像源
- 载波聚合或双连接的方式进行_首发天玑1000+!iQOO Z1来了:5G+5G双卡双待、双WiFi 6...
- Linux学习-账号管理
- Matlab的对角阵、三角阵,矩阵变换:矩阵的转置、旋转、翻转、求逆、方阵的行列式、矩阵的秩求解
- table表格实现第一列固定
- POJ-3376 Finding Palindromes
- YOLOv5的项目实践 | 手势识别项目落地全过程(附源码)
- 计算机视觉、图像处理学习资料汇总(转)
- 【C++实战 】标准库
- 计算机应用基础18秋在线作业2奥鹏,奥鹏15春北航《计算机应用基础》在线作业2答案...
- 设计模式--模板方法模式(照旧,有类关系图)
热门文章
- GPU--图形处理器
- Java MVC模式和三层架构
- ARM:NVIC VIC GIC SCB
- lisp图库不显示缩略图_[原创]在未安装过任何CAD版本的系统中,也能查看dwg文件的缩略图!...
- 基于阿里云服务器的Qt SDK配置
- 学习MySQL必须了解的13个关键字,你get了吗?
- jdk1.8-64下载
- SSM宠物领养系统毕业设计源码031654
- 鲁棒优化入门(三)——鲁棒优化工具箱RSOME快速上手与应用实例
- 机器人与matlab—Robotics Toolbox—01空间位姿描述