IXP425 cross compile的問題

我們生活周遭存在太多太多的 embedded system ,過去 embedded system 有專屬的 OS,現在 linux 也可以應用在嵌入式環境,不過本版將廣泛討論所有嵌入式系統不只 linux 喔,歡迎有這方面經驗或有興趣的朋友一同進來討論。

版主: chester

IXP425 cross compile的問題

文章a740707 » 週五 5月 11, 2007 2:06 am

小弟最近在用IXP425這塊板子
因為需要使用到chpasswd這個指令,所以去找了程式碼
打算把他cross compile放到板子上執行,但是一直出現下面的訊息:
[root@localhost chpasswd-1.4]# make
arm-linux-gcc chpasswd.o -lcrypt -o chpasswd.cgi
/IXP/toolchain/usr/local/bin/../lib/gcc-lib/arm-linux/3.2.1/../../../../arm-linux/lib/libcrypt.so: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make: *** [chpasswd.cgi] Error 1

我makefile的內容如下
#Generated automatically from Makefile.in by configure.
# Makefile.in for chpasswd.cgi

CC = arm-linux-gcc
LANGUAGE = English
CGIDIR = /usr/local/etc/httpd/cgi-bin
SRCDIR = .
INSTALL = cp
LIBCRYPT = -lcrypt
CFLAGS = -O2 -w $(DEFINES) -mbig-endian
PREFIX = /usr/local/etc/chpaansswd
DEFS = -I. -DHAVE_LIBCRYPT=1 -DHAVE_DIRENT_H=1 -DSTDC_HEADERS=1 -DHAVE_CRYPT_H=1 -DHAVE_PWD_H=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_TIME_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STRSTR=1 -DPREFIX=\"/usr/local/etc/chpasswd\"

INSTALL_PROGRAM = $(INSTALL)an

SRCS = chpasswd.c
OBJS = chpasswd.o

DISTFILES = $(SRCS)

all: chpasswd.cgi

.c.o:
$(CC) -c -mbig-endian $(CPPFLAGS) $(CFLAGS) $(DEFS) -D$(LANGUAGE) $<

chpasswd.cgi: $(OBJS)
$(CC) $(OBJS) $(LIBCRYPT) -o $@

install: all
$(INSTALL_PROGRAM) chpasswd.cgi $(CGIDIR)/chpasswd.cgi
chmod 755 $(CGIDIR)/chpasswd.cgi
-@if test ! -d $(PREFIX); then \
echo "mkdir $(PREFIX)"; \
mkdir $(PREFIX); \
fi
@if test ! -f $(PREFIX)/chpasswd.conf; then \
echo "cp $(PREFIX)/chpasswd.conf"; \
cp chpasswd.conf $(PREFIX)/chpasswd.conf; \
chmod 755 $(PREFIX)/chpasswd.conf; \
else \
cp chpasswd.conf $(PREFIX)/chpasswd.conf.orig; \
fi
@if test ! -f $(PREFIX)/chpasswd.log; then \
echo "touch $(PREFIX)/chpasswd.log"; \
touch $(PREFIX)/chpasswd.log; \
chmod 777 $(PREFIX)/chpasswd.log; \
fi

uninstall:
rm -f $(CGIDIR)/chpasswd.cgi

TAGS: $(SRCS)
etags $(SRCS)

clean:
rm -f chpasswd.cgi *.o core

mostlyclean: clean

distclean: clean
rm -f Makefile config.status config.cache config.log

realclean: distclean
rm -f TAGS

這樣是有哪邊要改卻沒改到的嗎,或是說我的chpasswd的版本有問
希望各位大大能夠幫忙解答一下 :-?
a740707
可愛的小學生
可愛的小學生
 
文章: 3
註冊時間: 週一 5月 07, 2007 7:58 pm

文章hbk » 週日 5月 13, 2007 1:57 am

我也碰到了相同的問題............

目前我只知道 CC = gcc , 要改成arm-linux-gcc,因為要用arm-linux-gcc

去編譯,而有FLAGS的 要加上 -mbig-endian。

請問有前輩知道有什麼需要修改的嗎@@?

在這卡了許久..囧
hbk
可愛的小學生
可愛的小學生
 
文章: 6
註冊時間: 週五 11月 17, 2006 11:55 am

文章mingchi » 週一 5月 14, 2007 3:54 pm

LDFLAGS 可能也要加 -mbig-endian

arm-linux-gcc chpasswd.o -lcrypt -o chpasswd.cgi

這裡沒有看到 -mbig-endian
mingchi
可愛的小學生
可愛的小學生
 
文章: 11
註冊時間: 週二 5月 08, 2007 5:58 pm
來自: 展翊電子

文章a740707 » 週三 5月 16, 2007 1:32 am

[root@localhost chpasswd-1.4]# make
arm-linux-gcc -c -mbig-endian -O2 -w -mbig-endian -I. -DHAVE_LIBCRYPT=1 -DHAVE_DIRENT_H=1 -DSTDC_HEADERS=1 -DHAVE_CRYPT_H=1 -DHAVE_PWD_H=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_TIME_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STRSTR=1 -DPREFIX=\"/usr/local/etc/chpasswd\" -DEnglish chpasswd.c
arm-linux-gcc chpasswd.o -lcrypt -o chpasswd.cgi -mbig-endian
chpasswd.o: In function `main':
chpasswd.o(.text+0xd64): the use of `tmpnam' is dangerous, better use `mkstemp'

CC = arm-linux-gcc
LD = arm-linux-ld
LANGUAGE = English
CGIDIR = /usr/local/etc/httpd/cgi-bin
SRCDIR = .
INSTALL = cp
LIBCRYPT = -lcrypt
CFLAGS = -O2 -w $(DEFINES) -mbig-endian
LDFLAGS = -mbig-endian
PREFIX = /usr/local/etc/chpasswd
DEFS = -I. -DHAVE_LIBCRYPT=1 -DHAVE_DIRENT_H=1 -DSTDC_HEADERS=1 -DHAVE_CRYPT_H=1 -DHAVE_PWD_H=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_TIME_H=1 -DHAVE_UNISTD_H=1 -DHAVE_STRSTR=1 -DPREFIX=\"/usr/local/etc/chpasswd\"

INSTALL_PROGRAM = $(INSTALL)

SRCS = chpasswd.c
OBJS = chpasswd.o

DISTFILES = $(SRCS)

all: chpasswd.cgi

.c.o:
$(CC) -c -mbig-endian $(CPPFLAGS) $(CFLAGS) $(DEFS) -D$(LANGUAGE) $<

chpasswd.cgi: $(OBJS)
$(CC) $(OBJS) $(LIBCRYPT) -o $@ -mbig-endian


這些是最近試的錯誤訊息,跟修改過後的部分makefile檔
還是不知道到底錯在哪邊
:crying:
a740707
可愛的小學生
可愛的小學生
 
文章: 3
註冊時間: 週一 5月 07, 2007 7:58 pm

文章turtleman » 週四 5月 17, 2007 9:51 am

chpasswd.o(.text+0xd64): the use of `tmpnam' is dangerous, better use `mkstemp'

這訊息叫你不要用 tmpnam 函式改用 mkstemp 比較好
如果這就是你說的錯誤訊息的話
是不是去改 code, 重新 make 試一下看看吧

祝好運

:D
turtleman
可愛的小學生
可愛的小學生
 
文章: 1
註冊時間: 週四 5月 17, 2007 9:47 am


回到 embedded system

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客