嵌入式Linux。符号查找错误

时间:2012-10-20 14:43:55

标签: linux embedded

我使用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。对不起。我不能很好地英语......

1 个答案:

答案 0 :(得分:0)

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

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