2

我制作了 userdef.c 来添加一些函数 otsu_Threshold 和 onBinarOtzu。函数库头文件是pxa_lib.h,我输入了这样的函数

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

无效 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:全部编译 install-host install-target clean clean-local \

卸载主机卸载目标

全部:编译安装主机安装目标

编译:lib/libpxadev.so bin/camera

lib/libpxadev.so:驱动程序/camera.o驱动程序/overlay2.o驱动程序/userdef.o

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

bin/相机:demo/camera.c

$(CC) $(CFLAGS) $(LFLAGS) -o $@ $^

安装主机:

安装目标:

清洁:清洁本地卸载主机卸载目标

清洁本地:

-rm -f lib/* 驱动程序/*.o

-rm -f bin/*

卸载主机:

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

卸载目标:

$(SUDO) rm -f $(PXA_TARGET_BIN_DIR)/相机

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

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

但是,发生了错误。

[root@WENDERS root]# [root@WENDERS root]# ./camera
PXA_CAMERA:choose MT.... sensor
PXA_CAMERA:choose MT.. sensor
camera_config : streamparm.type = 1
count = 3
width=320, height =240
./camera:符号查找错误:./camera:未定义符号:onBinarOtzu

我该怎么办...

附言。对不起。我英语不好...

4

1 回答 1

0

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

您必须将库添加到 Linux 可以找到它们的地方,可能在/usr/libor中,或者在变量/lib指定的地方。$LD_LIBRARY_PATH具体如何执行此操作取决于您设置的环境。

于 2012-10-20T23:27:03.410 回答