我使用userdef.c添加了一些函数otsu_Threshold和onBinarOtzu。 函数库头文件是 pxa_lib.h ,我输入的函数是这样的
void otzu_Threshold(unsigned char * orgImg,unsigned char * outImg,int height,int width);
void onBinarOtzu(unsigned char * m_InImg);
在文件夹'demo'中的camera.c中,我输入了
'#include< pxa_lib.h>
...
...
onBinarOtzu(vidbuf-> ycbcr.y);
生成文件
CC =的/ usr /本地/臂-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 \
uninstall-host uninstall-target
all:compile install-host install-target
编译: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 $ @ $ ^
安装宿主:
安装目标:
clean:clean-local uninstall-host uninstall-target
清洁本地:
-rm -f lib / * driver / * .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:选择MT ....传感器
PXA_CAMERA:选择MT ....传感器
camera_config:streamparm.type = 1
count = 3
width = 320,height = 240
./camera:符号查找错误:./ camera:undefined symbol:onBinarOtzu
我该怎么做......
PS。对不起。我不能很好地英语......
答案 0 :(得分:0)
看起来您在编译时链接到共享库,但它们没有加载到目标上。
您必须在Linux可以找到它们的地方添加库,可能在/usr/lib
或/lib
或$LD_LIBRARY_PATH
变量指定的某处。具体如何执行此操作取决于您已设置的环境。