一、下载live555源码http://live555.com/liveMedia/public/ ,我用的是红色框框里的这套源码。
二、解压压缩包,进入live目录
三、交叉编译时,需要通过config(arm版本是config.armlinux)生成相应的Makefile,最后完成交叉编译。(这里建议备份一份config文件)
四、打开config.armlinux文件,修改编译方式和增加库的保存路径。其他地方都先不用动。
五、将这些目录下的makefile.head文件的PREFIX修改为PREFIX = /home/zkx/live_arm(你的保存路径)
六、执行 ./genMakefiles armlinux,(每次修改了armlinux,都必须重新执行./genMakefiles armlinux 以生成新的makefile文件)此时可能会出现找不到openssl/ssl.h这个头文件,解决办法有二:
①如果你不需要用到ssl,可以在config.armlinux文件中加入-DNO_OPENSSL=1,再去进行后续操作。
②交叉编译openssl源码。
1,https://www.openssl.org/source/old/3.0/openssl-3.0.10.tar.gz 我下载的是3.0.10版本
2,进入openssl-3.0.10目录中,创建了一个install目录,执行./config no-asm shared no-async --prefix=$(pwd)/install --cross-compile-prefix=arm-linux-gnueabihf-
--prefix=$(pwd)/install 指的是库生成后存放的位置,我这里在当前路径下创建了一个install。
--cross-compile-prefix=arm-linux-gnueabihf- 指的是交叉编译的方式
no-asm: 在交叉编译过程中不使用汇编代码代码加速编译过程;
shared: 生成动态连接库。
no-async: 交叉编译工具链没有提供GNU C的ucontext库
3,执行make,发现如下图的错误,将makefile文件中的两个 -m64删除,重新make
4,执行make install ,将在你指定的位置保存ssl库文件。切记要看清楚这每个目录的名字!
5,至此,openssl库生成完毕,然后我将install这个目录拷贝到live555源码下的目录下,并改名为ssl_result_ubuntu。你也可以不这么干,但是后面路径要设置对。
6,修改CPMPILES_OPTS,增加LOPLAGS,执行ssl和crypto库的路径(也可通过软链接去实现)
7,重新./genMakefiles armlinux ; make ;基本都会遇到test问题
编辑一下这个文件 /live/BasicUsageEnvironment/BasicTaskScheduler.cpp(190行左右)。
8,重新./genMakefiles armlinux ; make ;
9,make install 后就可以在你指定的路径下生成live555库文件。
至此结束,错误的地方敬请指教~~~~~~~~~~~~