Chinaunix首页 | 论坛 | 博客
  • 博客访问: 623248
  • 博文数量: 116
  • 博客积分: 6078
  • 博客等级: 准将
  • 技术积分: 1214
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-23 10:09
文章分类

全部博文(116)

文章存档

2016年(1)

2015年(4)

2011年(2)

2010年(21)

2009年(88)

分类: C/C++

2009-05-07 10:43:15

/********************此文可以被转发,但请转发者保留作者的署名权
****李浩
****msn:lihao_nx@hotmail.com
****
****email:lihaoyxj@gmail.com
****出处:lihaoyxj.cublog.cn
****from:http://blog.csdn.net/lihao_ningxia
*****************/
    今天早上终于将xvid1.2.1移植到windows mobile平台上,虽然还没有测试,不过先把这部分的移植方式共享出来。
    下载xvid1.2.1就不用说了,它里边一个是WIN32项目,另一个是通用的基于LINUX等的。
    肯定是要新建一个windows mobile lib空项目了.
    然后把除过plugins文件夹下的所有文件加到项目中,如下:


然后把portab.h中的这一段相关代码改成如下
#if defined(ARCH_IS_32BIT)
#    define CACHE_LINE 64
#    define ptr_t uint32_t
#    define intptr_t int32_t
#    define _INTPTR_T_DEFINED
//这个注释有必要
//#    if defined(_MSC_VER) && _MSC_VER >= 1300 && !defined(__INTEL_COMPILER)
//#        include
//#    else
#        define uintptr_t uint32_t
//#    endif
#elif defined(ARCH_IS_64BIT)
#    define CACHE_LINE  64
#    define ptr_t uint64_t
#    define intptr_t int64_t
#    define _INTPTR_T_DEFINED
#    if defined (_MSC_VER) && _MSC_VER >= 1300 && !defined(__INTEL_COMPILER)
#        include
#    else
#        define uintptr_t uint64_t
#    endif
#else
#    error You are trying to compile XviD without defining address bus size.
#endif

再把预编译条件改成如下:
NDEBUG
_WIN32_WCE=$(CEVER)
UNDER_CE
$(PLATFORMDEFINES)
WINCE
_LIB
$(ARCHFAM)
$(_ARCHFAM_)
_UNICODE
UNICODE
ARCH_IS_GENERIC//add
ARCH_IS_32BIT//add


好了就可以这样编译了,如果过程中遇到汇编不能过,就先汇编注释掉,毕竟X86和ARM的汇编不一样的。我在坚持自己不能光吃一顿鱼,而是要学会捕鱼,希望大家也能顺利。至于编译的库能否使用,正确使用等测试后再说吧。

阅读(1592) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-06-17 15:34:50

您好, 我是个Windows Mobile 开发的新手,最近在移植XVID,请问您帖子中的预编译条件在哪里改的? 谢谢~

lihao_nx2009-08-23 18:58:14

你用nasm了没?要把汇编编译器加到系统中编译汇编码

chinaunix网友2009-08-23 15:51:59

你好,在编译汇编的时候报错:cbp_sse2.asm(31) : fatal error A1000: cannot open file : "nasm.inc" 这个文件你是怎么添加的?