mips平台交叉编译live555

live555源码下载地址:http://www.live555.com/liveMedia/public/

1、   cp config.armlinux  config.mips文件的属性和内容

修改config.mips文件内容:

CROSS_COMPILE?=         mips-linux-gnu- //这里写你自己的交叉编译器

COMPILE_OPTS =          $(INCLUDES) -I. -O2-DSOCKLEN_T=socklen_t -DXLOCALE_NOT_USED=1  -D_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 =

CONSOLE_LINK_OPTS =     $(LINK_OPTS)

LIBRARY_LINK =          $(CROSS_COMPILE)ar cr

LIBRARY_LINK_OPTS =     $(LINK_OPTS)

LIB_SUFFIX =                    a

LIBS_FOR_CONSOLE_APPLICATION =

LIBS_FOR_GUI_APPLICATION =

EXE =

2、   在live555根目录下运行./genMakefiles  mips

3、  在live555根目录下执行make

4、编译报错及解决办法:

报错:  

../liveMedia/libliveMedia.a(Locale.o): In function `Locale::~Locale()':

Locale.cpp:(.text+0x28): undefined reference to `uselocale'
Locale.cpp:(.text+0x30): undefined reference to `freelocale'
../liveMedia/libliveMedia.a(Locale.o): In function `Locale::Locale(char const*, LocaleCategory)':
Locale.cpp:(.text+0xa8): undefined reference to `newlocale'
Locale.cpp:(.text+0xb4): undefined reference to `uselocale'
collect2: error: ld returned 1 exit status
make[1]: *** [testMPEG4VideoStreamer] Error 1
make[1]: Leaving directory `/home/beihj/live555/live/testProgs'

make: *** [all] Error 2


查看liveMedia/include/Locale.hh文件,有如下信息:

// If you're on a system that (for whatever reason) doesn't have either the "setlocale()" or the "newlocale()" function, then
// add "-DLOCALE_NOT_USED" to your "config.*" file.


// If you're on a system that (for whatever reason) has "setlocale()" but not "newlocale()", then
// add "-DNEWLOCALE_NOT_USED" to your "config.*" file.
// (Note that -DLOCALE_NOT_USED implies -DNEWLOCALE_NOT_USED; you do not need both.)
// Also, for Windows systems, we define "NEWLOCALE_NOT_USED" by default, because at least some Windows systems
// (or their development environments) don't have "newlocale()".  If, however, your Windows system *does* have "newlocale()",
// then you can override this by defining "NEWLOCALE_USED" before #including this file.


// Finally, some old development environments need a header file "xlocale.h" to use "newlocale()".
// Should you need this header file, add "-DNEED_XLOCALE_H" to your "config.*" file.

解决办法:

我的系统跟local相关的函数都没有,根据liveMedia/include/Locale.hh提示修改config.mips给COMPILE_OPTS 添加-DLOCALE_NOT_USED。如果是其他情况,请根据提示修改config.mips即可。

COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DLOCALE_NOT_USED

猜你喜欢

转载自blog.csdn.net/BHJ1119/article/details/80285428