Monday, June 18, 2007

Recently, I had to cross compile liveMedia to arm, I encountered problem as the source code are written in C++, but I only have a gnu cross compiler....
Here is what I did.
1. Download a precompiled cross compiler version 2.95.3( try to google arm cross compiler)
2. Download live media source (www.live555.com)
3. Edit config.armlinux to

CROSS_COMPILE= /usr/local/arm/2.95.3/bin/arm-linux-
COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_STRSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -L./
C = c
C_COMPILER = $(CROSS_COMPILE)gcc
C_FLAGS = $(COMPILE_OPTS)
CPP = cpp
CPLUSPLUS_COMPILER = $(CROSS_COMPILE)c++
CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1
OBJ = o
LINK = $(CROSS_COMPILE)gcc -o
LINK_OPTS = -L.
CONSOLE_LINK_OPTS = $(LINK_OPTS)
LIBRARY_LINK = $(CROSS_COMPILE)ld -o
LIBRARY_LINK_OPTS = $(LINK_OPTS) -r -Bstatic
LIB_SUFFIX = a
LIBS_FOR_CONSOLE_APPLICATION =
LIBS_FOR_GUI_APPLICATION =
EXE =


4. After doing that I would encounter this error
cpp: installation problem, cannot exec `cpp': Argument list too long

For bug reporting instructions, please see:

make[1]: *** [Media.o] Error 1

5. To fix error on number four, i tried running
a. /usr/local/arm/2.95.3/bin/cpp -print-search-dirs
Output:
install: /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/
programs: /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/:/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/:/usr/lib/gcc/arm-linux/2.95.3/:/usr/lib/gcc/arm-linux/:/usr/local/arm/2.95.3/arm-linux/bin/arm-linux/2.95.3/:/usr/local/arm/2.95.3/arm-linux/bin/
libraries: /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/:/usr/lib/gcc/arm-linux/2.95.3/:/usr/local/arm/2.95.3/arm-linux/lib/arm-linux/2.95.3/:/usr/local/arm/2.95.3/arm-linux/lib/
b. add /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/ to env PATH

6. type make and it's ready to go...

2 comments:

Mark said...

Noticed you mentioned C++ problem, arm-linux version 2.95 may not be sufficient, maybe you can try Gcc 4.1.x and arm-linux gcc 4.x with FC 6.

daftster said...

thanks for your comment mark. I cannot use any other arm-linux version, since my other drivers are running with 2.95 :)