LIBS = $(shell pkg-config --libs opencv) -lpthread -lrt
SOURCES = cap.cpp
OBJECTS = $(SOURCES:.cpp=.o)
TARGET = cap
$(TARGET):$(OBJECTS)
arm-linux-g++ -o $@ $^ $(LIBS)
clean:
rm $(OBJECTS) $(TARGET)
%.o:%.cpp
arm-linux-g++ -o $@ -c $<
make:出现警告:
/opt/opt/EmbedSky/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: warning: ../../lib/libopencv_core.so, needed by /usr/local/lib/libopencv_calib3d.so, not found (try using -rpath or -rpath-link)
/opt/opt/EmbedSky/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: warning: ../../lib/libopencv_flann.so, needed by /usr/local/lib/libopencv_calib3d.so, not found (try using -rpath or -rpath-link)
/opt/opt/EmbedSky/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: warning: ../../lib/libopencv_imgproc.so, needed by /usr/local/lib/libopencv_calib3d.so, not found (try using -rpath or -rpath-link)
但我已经把opencv目录下的include和lib库都复制到交叉编译器指定的目录下。
make最后生成的执行文件也可以在树莓派上执行。
请问怎么消除这些警告?
7 个解决方案
#1
楼主解决了吗?我也遇到这个问题了
#2
我的没这些警告,但是在板子上跑不起来,,,
#3
兄弟,你跑起来了吗
#4
有可能是这些动态库编译时用的编译器与你现在的编译器版本不一。
也有可能是库之间的版本依赖问题, 即一些库也需要调用另一些库,但那库的版本太低了
#5
你可以尝试一下静态编译呢?
#6
libopencv_calib3d.so 是 arm eabi 版本吗?
#7
你的Makefile没有指定加载的opencv动态库
#1
楼主解决了吗?我也遇到这个问题了
#2
我的没这些警告,但是在板子上跑不起来,,,
#3
兄弟,你跑起来了吗
#4
有可能是这些动态库编译时用的编译器与你现在的编译器版本不一。
也有可能是库之间的版本依赖问题, 即一些库也需要调用另一些库,但那库的版本太低了
#5
你可以尝试一下静态编译呢?
#6
libopencv_calib3d.so 是 arm eabi 版本吗?
#7
你的Makefile没有指定加载的opencv动态库