编译imagemagick出错
要在C中使用ImageMagick,在程序中调用IM自带的example中的一段,编译时提示无数的错误(不是.c文件错误,都是imagemagick自带的.o文件的错误),比如:./libMagick.a(magick_libMagick_la-xml-tree.o): In function `NewXMLTree':
/root/myproject/magick/xml-tree.c:1770:undefined reference to `__ctype_b_loc''
arm-elf-ld: Dwarf Error: Invalid or unhandled FORM value: 14.
我是把libMagick.a和libWand.a这两个拷到项目lib目录里了
我的编译环境是arm的,有没可能是这个交叉编译环境版本的问题? libMagick.a需要其他库支持 哦,还需要什么?怎么做。
那么不是ImageMagick的问题了吧,我的makefile里也加上libMagick.a和libWand.a了。 undefined reference to `__ctype_b_loc''
你加了-lc参数没?不加应该也没问题,一般C库会被自动链上的,__ctype_b_loc应该属于C语言库,可能你的C语言库没这个函数。
还有哪些undefined reference to? 我的编译环境是arm的交叉编译环境,arm-elf-gcc是3.0的(arm_tools/lib/gcc-lib/arm-elf/3.0,随便问下,怎么看arm-elf的版本:),ImageMagick是6.2.9的。
贴出我的Makefile,大虾们帮忙看看。
Makefile:
----------------------------------begin--
.SUFFIXES : .x .o .c .s
BUILD_ROOT = /usr/local/arm_tools/
ROMDISK_ROOT=../romdisk/
PROJECT_DIR=../Library/include/ //--magick和wand目录下的.h文件都拷进来了
lib=${BUILD_ROOT}arm-elf/lib
lib1=${BUILD_ROOT}lib/gcc-lib/arm-elf/3.0/
include=${BUILD_ROOT}arm-elf/inc
CC=arm-elf-gcc -I${include} -I$(CAMERA_DIR) -O1 -c -DEMBED \
-DUSE_SERVER_PUSH -fsigned-char -march=armv4 -mtune=arm7tdmi -mapcs-32
AS=arm-elf-as
LD=arm-elf-ld
WEC_LDFLAGS = -L. -L../Library/530/lib -L${lib} -L${lib1} -T${lib}/elf2flt.ld
OBJS = Main.o Cgi.o Driver.o Config_Frequency.o GetCapability.o //....o文件比较多,略过
#
OTHEROBJS =
LIBS= --start-group -lma -lW530
TARGET = project
LIBS+= -lMagick -lWand -lmc -lpthread -lc -lgcc --end-group//--lMagick和lWand是ImageMagick的两个静态库.a文件,这两个静态库拷到项目目录里了
#-lssl -lcrypto
all: $(TARGET).x
elf2flt -s 229376 -o $(TARGET).flat $(TARGET).x >/dev/null 2>&1
flthdr -z $(TARGET).flat
cp $(TARGET).flat ${ROMDISK_ROOT}bin/$(TARGET).flat
$(TARGET).x: $(OBJS) $(OTHEROBJS)
$(LD) -o $(TARGET).x $(WEC_LDFLAGS) $(OTHEROBJS) $(OBJS) $(LIBS)
rm -f $(TARGET).x
$(LD) -o $(TARGET).x $(WEC_LDFLAGS) -r -d $(OTHEROBJS) $(OBJS) $(LIBS) -Map $(TARGET).map
.c.o:
$(CC) -o $*.o $*.c
.s.o:
$(AS) -ahld -o $*.o $*.s > NULL
del NULL
clean:
rm -f *.o
rm -f *.x*.~c
rm -f *.flat
rm -f *.map
rm -f romfs.img
rm -f $(OBJS) *.x *.map tmp
.PHONY : $(TARGET).x
----------------------------------end---
页:
[1]