2012-10-20 66 views
2

我为userdef.c添加了一些函数otsu_Threshold和onBinarOtzu。 函数库的头文件是pxa_lib.h和我输入功能这样嵌入式Linux。符号查找错误

void otzu_Threshold(unsigned char* orgImg, unsigned char* outImg, int height, int width);

void onBinarOtzu(unsigned char* m_InImg);

在camera.c是在文件夹 '演示',我输入

'#include < pxa_lib.h >

....

....

onBinarOtzu(vidbuf->ycbcr.y);

生成文件

CC=/usr/local/arm-linux-4.1.1/bin/arm-linux-gcc

CFLAGS+= -mcpu=iwmmxt -mtune=iwmmxt -mabi=aapcs-linux \

-Iinclude/ -DDEBUG_BUILD 

LFLAGS+=-Llib/ -lpxadev

.PHONY: all compile install-host install-target clean clean-local \

uninstall-host uninstall-target

all: compile install-host install-target

compile: lib/libpxadev.so bin/camera

lib/libpxadev.so: driver/camera.o driver/overlay2.o driver/userdef.o

$(CC) $(CFLAGS) -shared -W1,-soname,libpxadev.so -o lib/libpxadev.so $^

bin/camera: demo/camera.c

$(CC) $(CFLAGS) $(LFLAGS) -o [email protected] $^

install-host:

install-target:

clean: clean-local uninstall-host uninstall-target

clean-local:

-rm -f lib/* driver/*.o

-rm -f bin/*

uninstall-host:

-rm -f $(PXA_HOST_LIB_DIR)/libpxadev.so

uninstall-target:

$(SUDO) rm -f $(PXA_TARGET_BIN_DIR)/camera

$(SUDO) rm -f $(PXA_TARGET_LIB_DIR)/libpxadev.so

我制作了二进制文件,并通过minicom,zmodem在机器人中传输。

但是,发生了错误。

[[email protected] root]# [[email protected] root]# ./camera
PXA_CAMERA:choose MT.... sensor
PXA_CAMERA:choose MT.... sensor
camera_config : streamparm.type = 1
count = 3
width=320, height=240
./camera: symbol lookup error: ./camera: undefined symbol: onBinarOtzu

什么要高度重视我的工作...

PS。对不起。我不能英语很好...

回答

0

它看起来像编译时链接到共享库,但它们没有加载到目标上。

您必须将这些库添加到Linux可以找到它们的位置,可能位于/usr/lib/lib或某处由$LD_LIBRARY_PATH变量指定的位置。您的具体做法取决于您设置的环境。