交叉编译SRS

1、源码下载:
   SRS源码下载 : git clone http://git.oschina.net/winlinvip/srs.oschina
                参考文章中介绍的是这个下载路径https://github.com/ossrs/srs,但是克隆下载时度很慢更换这个源后速度很快。
2、configure
   在configure之前需要修改/trunk/auto/setup_variables.sh;
   以前:
   if [ $SRS_ARM_UBUNTU12 = YES ]; then
    __SrsArmCC="arm-linux-gnueabi-gcc";
    __SrsArmGCC="arm-linux-gnueabi-gcc";
    __SrsArmCXX="arm-linux-gnueabi-g++";
    __SrsArmAR="arm-linux-gnueabi-ar";
    __SrsArmLD="arm-linux-gnueabi-ld";
    __SrsArmRANDLIB="arm-linux-gnueabi-ranlib";
   fi
   修改:
   if [ $SRS_ARM_UBUNTU12 = YES ]; then
    __SrsArmCC="arm-none-linux-gnueabi-gcc";
    __SrsArmGCC="arm-none-linux-gnueabi-gcc";
    __SrsArmCXX="arm-none-linux-gnueabi-g++";
    __SrsArmAR="arm-none-linux-gnueabi-ar";
    __SrsArmLD="arm-none-linux-gnueabi-ld";
    __SrsArmRANDLIB="arm-none-linux-gnueabi-ranlib";
   fi
   原因是:DM8168的交叉编译链arm-none-linux-gnueabi-gcc,需要修改成为DM8168的编译链
   
   ./configure --with-ssl --with-hls --with-librtmp --with-arm-ubuntu12

3、make
   make的时候会报错,编译时出现链接问题:
    ../../objs/openssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_globallookup':
    dso_dlfcn.c:(.text+0x1c): undefined reference to `dlopen'
    dso_dlfcn.c:(.text+0x30): undefined reference to `dlsym'
    dso_dlfcn.c:(.text+0x3c): undefined reference to `dlclose'
    ../../objs/openssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_pathbyaddr':
    dso_dlfcn.c:(.text+0x68): undefined reference to `dladdr'
    dso_dlfcn.c:(.text+0xb8): undefined reference to `dlerror'
    ../../objs/openssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_func':
    dso_dlfcn.c:(.text+0x3bc): undefined reference to `dlsym'
    dso_dlfcn.c:(.text+0x45c): undefined reference to `dlerror'
    ../../objs/openssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_bind_var':
    dso_dlfcn.c:(.text+0x4f0): undefined reference to `dlsym'
    dso_dlfcn.c:(.text+0x58c): undefined reference to `dlerror'
    ../../objs/openssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_unload':
    dso_dlfcn.c:(.text+0x5e8): undefined reference to `dlclose'
    ../../objs/openssl/lib/libcrypto.a(dso_dlfcn.o): In function `dlfcn_load':
    dso_dlfcn.c:(.text+0x67c): undefined reference to `dlopen'
    dso_dlfcn.c:(.text+0x6cc): undefined reference to `dlclose'
    dso_dlfcn.c:(.text+0x6f8): undefined reference to `dlerror'
    collect2: ld returned 1 exit status
    make[3]: *** [objs/srs_flv_parser] 错误 1
    make[3]:正在离开目录 `/zhiboji/srs/srs.oschina_cross/trunk/research/librtmp'
    make[2]: *** [ssl] 错误 2
    make[2]:正在离开目录 `/zhiboji/srs/srs.oschina_cross/trunk/research/librtmp'
    make[1]: *** [librtmp] 错误 2
    make[1]:正在离开目录 `/zhiboji/srs/srs.oschina_cross/trunk'
    make: *** [default] 错误 2
    修改/trunk/research/librtmp/Makefile
        1)GCC= arm-none-linux-gnueabi-gcc //换成DM8168交叉编译链
        2) # for arm.
        ifeq ($(GCC), arm-none-linux-gnueabi-gcc)
            EXTRA_CXX_FLAG = -g -O0 -ldl -static -lstdc++
            endif

编译生成:
        执行文件 /trunk/objs/srs
        生成的库 /trunk/objs/lib/srs_librtmp.a

 

问题:objs/st/libst.a: error adding symbols: 文件格式错误 出现这种问题,需要修改 /objs/Makefile

     GCC = arm-none-linux-gnueabi-gcc
    CXX = arm-none-linux-gnueabi-g++
    AR = arm-none-linux-gnueabi-ar
    LINK = arm-none-linux-gnueabi-g++

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值