live555在armlinux下的交叉编译

live555armlinux下的交叉编译  

2010-12-30 16:48:39|  分类:默认分类|字号 订阅

live555版本:live.2010.12.14.tar.gz

Linux版本:2.6.24    

在生成Makefile之前还应先根据自己的交叉编译器名称修改config.armeb-uclibc 

首先要生成Makefile,按照Linux的惯例用configure是不行的。我使用的是uclibc库,所以要用如下命令产生Makefile:

./getMakefiles armeb-uclibc

然后make

先后出现两个错误:

:4:1:macro names must be identifiers

strDup.cpp: undefinedreference to 'operator new[](unsigned int)'
collect2: ld returned1 exited status

这两个错误均是由config.armeb-uclibc产生的,按照错误提示修改config.armeb-uclibc即可:

修改好的如下:

CROSS_COMPILE=arm-linux-
COMPILE_OPTS = $(INCLUDES) -I. -Os-DSOCKLEN_T=socklen_t -DNO_SSTREAM=1
LARGEFILE_SOURCE=1-D_FILE_OFFSET_BITS=64
C = c
C_COMPILER =$(CROSS_COMPILE)gcc
C_FLAGS = $(COMPILE_OPTS)
CPP =cpp
CPLUSPLUS_COMPILER = $(CROSS_COMPILE)g++
CPLUSPLUS_FLAGS =$(COMPILE_OPTS) -Wall -DBSD=1
OBJ = o
LINK =$(CROSS_COMPILE)g++ -o
LINK_OPTS = -L.
CONSOLE_LINK_OPTS =$(LINK_OPTS)
LIBRARY_LINK = $(CROSS_COMPILE)ar cr
LIBRARY_LINK_OPTS =
LIB_SUFFIX =a
LIBS_FOR_CONSOLE_APPLICATION =
LIBS_FOR_GUI_APPLICATION =
EXE=

译完成后会在mediaServer下生成live555MediaServer这个可执行文件,接下来就是部署live555MediaServerARM板了,先把live555MediaServer所以依赖的库libstdc++.so.6libgcc_s.so.1等放到文件系统的/lib目录下。我把live555MediaServer拷贝到

ARM板的/tmp目录下,又拷贝了一个sample.264的文件到/tmp,执行live555MediaServer。在PC端打开VLC,选择打开串流文件,

输入rtsp://192.168.240.230/sample.264,就可以看到视频啦。。。

libstdc++.so.6的版本过低

(2011-11-13 22:08)

在安装qt-creator的时候运行这个IDE就出现了这个问题,是由于libstdc++.so.6的版本过低,需要下载个新的重新建立软连接。

linux 执行strings/usr/lib/libstdc++.so.6 | grepGLIBC
返回结果没有GLIBCXX_3.4.9

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBC_2.0
GLIBC_2.3
GLIBC_2.4
GLIBC_2.3.4
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

执行ls-l  /usr/lib/libstdc++.so.6
发现/usr/lib/libstdc++.so.6->/usr/lib/libstdc++.so.6.0.8,其实这里需要使用libstdc++.so.6.0.10
从网上下载这个文件,然后rm-rf /usr/lib/libstdc++.so.6 ->/usr/lib/libstdc++.so.6.0.8软链接删除,重新做
ln-s /usr/lib/libstdc++.so.6.10  /usr/lib/libstdc++.so.6



你可能感兴趣的:(live555在armlinux下的交叉编译)