如何解决为 Rpi-4 交叉编译 openCV 并运行测试
我尝试为 Raspberry Pi4 交叉编译 openCV,我使用了此处的指南 Open-CV cross-compile guide。 Raspberry Pi4 运行 Alpine,我不想在那里安装任何库或包。 OpenCV 交叉编译成功,但是当我尝试在我的 apk 中使用它时,出现一些错误。
我的 main.cpp 代码:
^(?=.*\border pizza\b).*$
我的 CMake 文件:
#include <opencv2/opencv.hpp>
#include <iostream>
void execute_smoke_test() {
std::string file_name = "dogRunning.mp4";
VideoCapture cap(file_name);
// Check if video opened successfully
if (!cap.isOpened()) {
std::cout << "Error opening video stream or file" << std::endl;
return;
}
}
int main(int argc,char const* argv[]) {
std::cout << "OpenCV test\n";
execute_smoke_test();
/* code */
return 0;
}
我的 Toolchain.cmake 文件:
cmake_minimum_required (VERSION 3.10)
project(hello-world-openCV VERSION 0.1
LANGUAGES CXX)
SET(CMAKE_VERBOSE_MAKEFILE on)
set(CMAKE_EXE_LINKER_FLAGS "-static")
set(OpenCV_STATIC ON)
find_package(OpenCV REQUIRED)
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS} "-static")
make 命令输出(有错误):
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_VERSION 1)
SET(CMAKE_SYSTEM_PROCESSOR arm)
# Indicate cross compiling
SET(CMAKE_CROSSCOMPILING 1)
SET(CMAKE_C_COMPILER_WORKS 1)
# Define the cross compiler and linker locations
SET(CMAKE_C_COMPILER /usr/bin/aarch64-linux-gnu-gcc)
SET(CMAKE_CXX_COMPILER /usr/bin/aarch64-linux-gnu-g++)
# Use our definitions for compiler tools
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# Search for libraries and headers in the target directories only
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
对导致问题的原因有任何想法吗?我认为它找不到一些动态库。但是为什么需要它呢? OpenCV 是静态交叉编译的……另外,关于如何找到丢失的库的任何想法?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。