【发布时间】:2020-12-07 23:27:03
【问题描述】:
我正在尝试在ubuntu 16.04上搭建一个交叉编译系统来缩短编译时间。
我已经安装了工具并从树莓派中复制了库,一个简单的“Hello world”示例绝对运行良好。
当我尝试使用 cmake 和 opencv 构建程序时出现问题。显然它在主机系统中找不到 OpenCVConfig.cmake,因为它只存在于 rpi 的以下文件夹中:
/usr/local/lib/cmake/opencv4$
我可以将 /usr/local/lib/cmake 文件夹复制到主机并手动修改库安装路径吗?或者我应该怎么做?
错误信息:
找不到“OpenCV”提供的包配置文件 以下名称:
OpenCVConfig.cmake
opencv-config.cmake
将“OpenCV”的安装前缀添加到CMAKE_PREFIX_PATH或设置 “OpenCV_DIR”到包含上述文件之一的目录。如果“OpenCV” 提供单独的开发包或SDK,请确保已 已安装。
我的 CMakeLists.txt:
set(CMAKE_BUILD_TYPE Release)
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_VERSION 1)
SET(CMAKE_C_COMPILER $ENV{HOME}/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-gcc)
SET(CMAKE_CXX_COMPILER $ENV{HOME}/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++)
# Where is the target environment
SET(CMAKE_FIND_ROOT_PATH $ENV{HOME}/raspi/sysroot)
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --sysroot=${CMAKE_FIND_ROOT_PATH}")
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --sysroot=${CMAKE_FIND_ROOT_PATH}")
SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} --sysroot=${CMAKE_FIND_ROOT_PATH}")
# Search for programs only in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# Search for libraries and headers only in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall -fopenmp")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp")
find_package( OpenCV REQUIRED )
find_library(LIB_RT rt)
list(APPEND LINK_LIBS
${OpenCV_LIBS}
)
include_directories(
${OpenCV_INCLUDE_DIRS}
)
set(SOURCE opencvdemo.cpp)
add_executable(vc_opencv_demo ${SOURCE})
target_link_libraries(vc_opencv_demo ${LIB_RT} ${LINK_LIBS})
【问题讨论】:
-
你在使用
python吗? -
我正在使用 c++。
-
pkg-config --modversion opencv4的命令结果是什么? -
pkg-config --modversion opencv4 在 pkg-config 搜索路径中找不到包 opencv4。也许您应该将包含 `opencv4.pc' 的目录添加到 PKG_CONFIG_PATH 环境变量 No package 'opencv4' found
-
这很奇怪。 Opencv 已安装,并且在 RPI 中编译良好。
标签: opencv cmake raspberry-pi arm cross-compiling