c++ - 交叉编译找不到引用

标签 c++ raspberry-pi cross-compiling

我正在尝试为 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

我收到关于 undefined reference 的错误,这对我来说没有意义:

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

这是我的第一个交叉编译项目,所以我在猜测一些愚蠢的事情。非常感谢一些帮助!

最佳答案

libvgfont.a 是一个C 库,用cc 编译。将 extern "C"添加到 vffont.h header 可解决此问题。有关详细信息,请参阅 https://stackoverflow.com/a/12994075/1704581

关于c++ - 交叉编译找不到引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25588574/

相关文章:

raspberry-pi - 多个 I2C 设备具有相同的地址

linux - 使用 pthread 运行交叉编译代码时出错

cross-compiling - bin/sh : 1: arm-eabi-gcc not found

C++ 动态数组输入

C++ Dll 链接 Curl

c++ - 尝试添加 opencv 库时出现 CMake 错误

c++ - 如何在 OpenCV (3.0.0) OCL 中启动自定义 OpenCL 内核?

python - friend 的私有(private)(Raspberry)数据服务器

python - Flask Button 在不刷新页面的情况下运行 Python?

cross-compiling - autotools:C 编译器无法创建可执行文件