在编译自己编码的AndroidRTSP播放器网络库时,网络库引用到了Android NDK编译出的live555子模块库,编译会遇到遇到报各种 undefined reference to xxxx方法, 但是这些方法有都存在live555的各个模块的库中
我想看编译出来的o文件, 那个c文件对应的o文件存在,Android.mk文件也是经过各种验证的,,引用库也引用到了.
结果网上查资料查到有一种说法说是引用库的顺序问题, 越基础的库就越要写到后面. 根据这种说法修改库引用顺序,live555中各个模块库的引用顺序,:
liveMedia groupsock BasicUsageEnvironment UsageEnvironment
当然最基础的引用库放在最后面,再次编译结果OK了…,顺利生成了库文件,虽然还不能调用成功...
注:
ndk 构建注意事项
ndk 构建注意事项
1, Android.mk 和 Application.mk 的默认位置放在 jni,最好不要改这个位置,不然后果很严重!
2, 生成一个静态库(.a)一定要在 Application.mk 中加入 APP_MODULES := libxxmod, 不然执行 ndk-build 没一点儿反应
3, LOCAL_C_INCLUDES 中的目录最好这样写 LOCAL_C_INCLUDES := $(LOCAL_PATH)/.