我一直在尝试使用NDK将一些旧的Symbian C++代码移植到Android上。C/C++新手使用Android NDK移植遗留代码,得到编译错误
我几乎没有C或C++的知识,所以它是一件苦差事,但必须完成。
我的主要问题是,我无法移植我认为是使用Android NDK提供的小型C/C++子集的Symbian专用代码。
下面是我用的cygwin
我想知道如果任何人都可以就如何处理这些错误指向正确的方向我得到的编译错误的照片吗?例如TBool/Int/TUint/RPointerArray/RSocket是一个Symbian原语,这就是为什么它不会编译或者是其他的东西?
什么是ISO C++?
任何教程,指南或技巧和帮助将不胜感激。
编辑:
这里是.h文件,我试图导入,然后输出从编译器代码段的代码片段。
有人能指导我如何将这个Symbian特定的代码移植到正常的C++吗?
如果我得到的最新的Symbian具体怎么改,我相信我可以改变,然后开始端口,其余自己
#ifndef __RTPSTREAM_H__
#define __RTPSTREAM_H__
class CRTPParser;
class MDataRecorderObserver
{
public:
virtual void DataRecorded(const TDesC8& aData, TUint aCodec, TUint aFramesizeMs)=0;
};
class MRTPStreamDataObserver
{
public:
virtual void AudioDataSent()=0;
virtual void DataReceived(const TDesC8& aData,TUint aCodec, TBool aMarker, TUint aSeq, TUint aTime)=0;
virtual void DataReceived(const TDesC8& aData)=0;
};
$ make APP=ndk-socket
Android NDK: Building for application 'ndk-socket'
Compile++ thumb: socket <= apps/ndk-socket/project/jni/rtpstream.cpp
In file included from apps/ndk-socket/project/jni/com_ciceronetworks_utils_RTPJn
i.h:2,
from apps/ndk-socket/project/jni/rtpstream.cpp:4:
build/platforms/android-3/arch-arm/usr/include/jni.h:489: note: the mangling of
'va_list' has changed in GCC 4.4
In file included from apps/ndk-socket/project/jni/rtpstream.cpp:11:
apps/ndk-socket/project/jni/rtp/RTPStream.h:15: error: ISO C++ forbids declarati
on of 'TDesC8' with no type
apps/ndk-socket/project/jni/rtp/RTPStream.h:15: error: expected ',' or '...' bef
ore '&' token
apps/ndk-socket/project/jni/rtp/RTPStream.h:23: error: ISO C++ forbids declarati
on of 'TDesC8' with no type
apps/ndk-socket/project/jni/rtp/RTPStream.h:23: error: expected ',' or '...' bef
ore '&' token
apps/ndk-socket/project/jni/rtp/RTPStream.h:24: error: ISO C++ forbids declarati
on of 'TDesC8' with no type
apps/ndk-socket/project/jni/rtp/RTPStream.h:24: error: expected ',' or '...' bef
ore '&' token
apps/ndk-socket/project/jni/rtp/RTPStream.h:24: error: 'virtual void MRTPStreamD
ataObserver::DataReceived(int)' cannot be overloaded
apps/ndk-socket/project/jni/rtp/RTPStream.h:23: error: with 'virtual void MRTPSt
reamDataObserver::DataReceived(int)'
apps/ndk-socket/project/jni/rtp/RTPStream.h:30: error: 'TInt' has not been deca
red
是的,这些都是非标准类型..你的代码似乎充满了Symbian特定的代码。不确定你的代码是做什么的,它是商业逻辑吗?一些算法的实现?用户界面?对于ISO C++,请阅读C++ http://en.wikipedia上的wiki文章。组织/维基/ C_plus_plus。 – Ivan 2010-04-19 17:11:34
需要注意的是,您可以通过点击菜单栏左端小小的“c:”图标,从菜单栏中选择“编辑 - >标记”来复制Windows命令提示窗口中的文本点击alt-space),选择你想用鼠标复制的文本,然后点击“enter”复制它。比screencap更容易阅读,然后您可以选择它的一些位置进行Google搜索。 – 2010-04-20 04:13:36
嗨伊万,代码是一个rtp流的实现,布鲁克斯,谢谢你的提示! – 2010-04-20 08:09:19