[英]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.