07/24/2019
给Android移植V4L2 RTSP Server
现有的v4l2rtspserver项目无法编译出Android可用的二进制文件。所以需要修改一下cmake
想稳定的传输摄像头视频,离不开v4l2和rtsp。所以就有了v4l2rtspserver这种神器。项目的地址在 GitHub 上。
这个项目使用的cmake,提供了x86(默认) / mips / nanopi(linux-armhf) / raspberry(linux-armv7)四种编译目标。
具体修改内容
首先设置编译工具链
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_PROCESSOR arm)
SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
SET(CMAKE_C_COMPILER arm-linux-androideabi-gcc)
SET(CMAKE_CXX_COMPILER arm-linux-androideabi-g++)
设置编译工具链为Android NDK (arm-linux-androideabi-)
不加载安卓不支持的库
停止加载ALSA
set(ALSA 0)
不需要加载pthread,注释掉
#find_package (Threads)
#target_link_libraries (${PROJECT_NAME} ${CMAKE_THREAD_LIBS_INIT})
改FLAG
set(CMAKE_C_FLAGS "-Wall -DANDROID_OLD_NDK -pie")
set(CMAKE_CXX_FLAGS "-Wall -DANDROID_OLD_NDK -pie")
pie = Position Independent Executables. Android二进制文件需要是pie模式的
ANDROID_OLD_NDK NDK版本问题,否则网络代码编译不通过