2014-08-31 93 views
2

我正在嘗試跨樹編譯raspberryPi的演示。我使用CMake,但下面是linkng命令。最重要的部分是,libvgfont.a是在最後:交叉編譯找不到引用

/home/justinvf/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/armlinux-gnueabihf-g++  CMakeFiles/CamHack.dir/opencv_demo.cpp.o -o CamHack -rdynamic /home/justinvf/raspi/rootfs/lib/libmmal_core.so /home/justinvf/raspi/rootfs/lib/libmmal_util.so /home/justinvf/raspi/rootfs/lib/libmmal_vc_client.so /hom\ 
e/justinvf/raspi/rootfs/lib/libvcos.so /home/justinvf/raspi/rootfs/lib/libbcm_host.so /home/justinvf/raspi/rootfs/lib/opencv/libopencv_highgui.so /home/justinvf/raspi/rootfs/lib/opencv/libopencv_core.so /home/justinvf/raspi/rootfs/lib/opencv/libopencv_imgproc.so /home/justinvf/raspi/rootfs/lib/opencv/libopencv_objdetect.so /home/justinvf/raspi/rootfs/lib/libo\ 
penmaxil.so /home/justinvf/raspi/rootfs/lib/libEGL.so -lpthread -lm -lrt /home/justinvf/raspi/rootfs/opt/vc/src/hello_pi/libs/vgfont/libvgfont.a -Wl,-rpath,/home/justinvf/raspi/rootfs/lib:/home/justinvf/raspi/rootfs/lib/opencv 

我收到關於未做出意義,我不確定引用的錯誤:

opencv_demo.cpp:(.text+0xc10): undefined reference to `gx_graphics_init(char const*)' 
opencv_demo.cpp:(.text+0xc38): undefined reference to `gx_create_window(unsigned int, unsigned int, unsigned int, GRAPHICS_RESOURCE_TYPE_T, GRAPHICS_RESOURCE_HANDLE_TABLE_T**)' 
opencv_demo.cpp:(.text+0xc54): undefined reference to `gx_create_window(unsigned int, unsigned int, unsigned int, GRAPHICS_RESOURCE_TYPE_T, GRAPHICS_RESOURCE_HANDLE_TABLE_T**)' 

libvgfont.a肯定有這些參考文獻:

nm -g /home/justinvf/raspi/rootfs/opt/vc/src/hello_pi/libs/vgfont/libvgfont.a | grep gx_graphics_init 
000025d8 T gx_graphics_init 

這是我的第一個交叉編譯項目,所以我猜測一些愚蠢的東西。雖然非常感謝一些幫助!

+0

您確定庫和對象文件的排序是否正確? – 0x499602D2 2014-08-31 03:34:23

+0

感覺就像一個缺失的依賴關係,這可能是一些cmake選項的結果......當你說「交叉編譯」時,你的意思是你在你的計算機上構建OpenCV(x86)以將其轉移到Pi臂)?或者你只是建立在Pi上? – tomwhipple 2014-08-31 15:57:08

+0

另外,你使用的是什麼版本的OpenCV? – tomwhipple 2014-08-31 15:59:59

回答