简体   繁体   English

CMake无法确定目标平台的位数

[英]CMake fails to deterimine the bitness of target platform

I am trying to cross-compile OpenCV 3.2 for Yocto (i.MX6D). 我正在尝试为Yocto(i.MX6D)交叉编译OpenCV 3.2。

I create a toolchain.cmake file : 我创建一个toolchain.cmake文件:

 # compiler
include(CMakeForceCompiler)
cmake_force_c_compiler(arm-poky-linux-gnueabi-gcc GNU)
cmake_force_cxx_compiler(arm-poky-linux-gnueabi-g++ GNU)
# sysroot location
set(MYSYSROOT /opt/poky/1.8/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi)
# compiler/linker flags
add_definitions("--sysroot=${MYSYSROOT}")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --sysroot=${MYSYSROOT}" CACHE INTERNAL "" FORCE)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --sysroot=${MYSYSROOT}" CACHE INTERNAL "" FORCE)
# cmake built-in settings to use find_xxx() functions
set(CMAKE_FIND_ROOT_PATH ${MYSYSROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

I run: de@DE:~/OpenCVcross/opencv/build$ cmake -DCMAKE_TOOLCHAIN_FILE=poky-opencv-toolchain.cmake -DOPENCV_EXTRA_MODULES_PATH=/home/de/OpenCVcross/opencv_contrib/modules /home/de/OpenCVcross/opencv 我运行: de@DE:~/OpenCVcross/opencv/build$ cmake -DCMAKE_TOOLCHAIN_FILE=poky-opencv-toolchain.cmake -DOPENCV_EXTRA_MODULES_PATH=/home/de/OpenCVcross/opencv_contrib/modules /home/de/OpenCVcross/opencv

and get this error: 并得到这个错误:

在此处输入图片说明

On the internet there are a lot of example to create an image with bitbake includes Opencv 2.4. 在Internet上有很多使用bitbake创建图像的示例,其中包括Opencv 2.4。 I don't want to create a new image, just want to compile OpenCV 3.2 with poky. 我不想创建新映像,只想用poky编译OpenCV 3.2。

PS I tried compile a simple hello.c with poky and it was successful. PS我尝试用poky编译一个简单的hello.c,它成功了。

arm-poky-linux-gnueabi-gcc --sysroot=/opt/poky/1.8/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi -mfloat-abi=hard hello.c -o helloworld  

How can I compile OpenCv 3.2 with poky? 如何用poky编译OpenCv 3.2? What is the problem here? 这里有什么问题?

I don't think you need your own toolchain file. 我认为您不需要自己的工具链文件。 Yocto SDK has provided one in /opt/poky/1.8/sysroots/x86_64-pokysdk-linux/usr/share/cmake/OEToolchianConfig.cmake. Yocto SDK在/opt/poky/1.8/sysroots/x86_64-pokysdk-linux/usr/share/cmake/OEToolchianConfig.cmake中提供了一个。 If you don't specify -DCMAKE_TOOLCHAIN_FILE , this one will be used. 如果您未指定-DCMAKE_TOOLCHAIN_FILE ,那么将使用此。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM