将解码库和多媒体库SDL(这里用的不是支持Android的SDL-1.3版)移植到android上面,在解码库的main()函数中调用SDL在屏幕上将解码后的视频绘制出图像
int main(int argc, char* argv[]){

SDL_Init()//调用SDL
}上面省略的()为解码代码将该main()移植到android中去,我想的步骤是:
1.编译两个开源库
  1.1.eclipse中新建一个Android工程SVCAndroid
  1.2.在该工程SVCAndroid下新建jni,将VS工程SVC(包含解码库svc和多媒体库SDL)下项目复制到jni中,jni的树目录:  1.3写Android.mk(),我是将对应的模块放置在相应的目录中去的,
对于libview模块,如下
   
其Android.mk为:
LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := libview
LOCAL_SRC_FILES := extract_picture.c \
                   sdl.c \
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include //这样写对吗?include $(BUILD_SHARED_LIBRARY)
对于lib_svc模块,如下

其Android.mk为:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)LOCAL_MODULE := lib_svcLOCAL_C_INCLUDES := $(LOCAL_PATH)/includeLOCAL_SRC_FILES := $(lib_svc/*.c) //里面有很多.c文件,不知这样的写法对不include $(BUILD_SHARED_LIBRARY)在根目录放置一个Android.mk文件,内容如下:
include $(call all-subdir-makefiles)  问题:
1.不知道我上面红字标注的地方写的对不?要是在一个Android.mk文件里包含lib_svc和libview模块怎么写呢?
2.该处的SDl我用的不是支持Android的SDL-1.3版,这个是不是要换成支持Android的SDL-1.3版?

解决方案 »

  1.   

    额 我本意是想问,我的这个Android.mk写的对不啊?
      

  2.   

    想问的是:
    1.在lib_svc模块中的.C和.h头文件是在一个目录下的
    LOCAL_SRC_FILES := $(lib_svc/*.c) //里面有很多.c文件,不知这样的写法对不
    LOCAL_C_INCLUDES := $(LOCAL_PATH)/include//这个也不对吧?应该怎么该呢
    2.要是在一个Android.mk文件里包含lib_svc和libview模块怎么写呢
      

  3.   


    第一个问题的LOCAL_SRC_FILES,首先加$()是不对的,其次,如果有多个文件,这样写也是不对的。建议你用find命令把目录与字母录中的源文件列出来一下然后粘过来就好了。
    LOCAL_C_INCLUDES这个写法是对的。
    第二个问题,如果要调用这两个模块,要写
    LOCAL_C_INCLUDES += 这两个模块的头文件目录
    LOCAL_LDLIBS += -L模块so文件所在的目录 -l库的名称(相信你知道gcc的编译选项,和那个是一样的)