强制cmake创建32位库而不是64位

时间:2018-06-14 17:35:24

标签: cmake raspberry-pi debian

我目前正在尝试在运行Debian 9映像的虚拟机中为Raspberry Pi摄像头构建和链接库。有问题的图书馆可以在https://github.com/cedricve/raspicam找到。该库在VM中构建良好,我的程序也构建良好,但链接器失败。构建行和错误消息(有问题的库是raspicam):

arm-linux-gnueabihf-g++ -o Linux-rpi3/video build/main.cpp.o Linux-rpi3/lib/libvideo.a -lcommon -lclsocket -lGeographic -llog4cplus -lpthread -lshp -lsodium -L./Linux-rpi3/lib -L../common/Linux-rpi3/lib -L../3px/civetweb-1.6/Linux-rpi3 -L../3px/clsockets_1_4_2.mod/Linux-rpi3/lib -L../3px/GeographicLib-1.49/Linux-rpi3/lib -L../3px/libsodium-1.0.3/Linux-rpi3/lib -L../3px/log4cplus-1.1.3-rc3/Linux-rpi3/lib -L../3px/shapelib-1.3.0/Linux-rpi3/lib -L/opt/local/lib -L./3px/raspicam/src -lraspicam
//usr/local/lib/libraspicam.so: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status

我有理由相信这是32位程序和64位库之间的不匹配。如果我在编译的库上运行objdump -a,它将返回

libraspicam.so:     file format elf64-x86-64

同时,如果我在没有依赖库的部件的情况下编译程序并在可执行文件上运行objdump -a,则返回

video:     file format elf32-little

由于我对cmake并不十分熟悉,因此我不知道我需要在库中进行哪些更改才能将其构建为elf32-little以便将程序设置为链接正常。是否可以将此库构建为32位,如果是这样,我需要做什么?

0 个答案:

没有答案