Ubuntu交叉编译链接opencv静态库
时间: 2023-11-05 19:01:30 浏览: 117
1. 安装交叉编译工具链
首先需要安装交叉编译工具链,可以根据目标平台的架构选择相应的工具链。以ARM架构为例,可以使用ARM的官方工具链或者使用Ubuntu提供的工具链:
```bash
sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
```
2. 下载并编译opencv
下载opencv源码,解压后进入源码目录,执行以下命令:
```bash
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm-gnueabi.toolchain.cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/arm-linux-gnueabihf ..
make -j4
```
其中,`-DCMAKE_TOOLCHAIN_FILE`指定了交叉编译工具链,`-DOPENCV_EXTRA_MODULES_PATH`指定了opencv_contrib的路径,`-DBUILD_SHARED_LIBS=OFF`表示编译静态库,`-DBUILD_TESTS=OFF`、`-DBUILD_PERF_TESTS=OFF`、`-DBUILD_EXAMPLES=OFF`表示不编译测试和示例程序,`-DCMAKE_BUILD_TYPE=RELEASE`表示编译优化,`-DCMAKE_INSTALL_PREFIX`指定了安装目录。
编译完成后,执行以下命令安装opencv:
```bash
sudo make install
```
3. 链接静态库
在编译自己的程序时,需要链接opencv的静态库。以CMake为例,可以在`CMakeLists.txt`中添加以下代码:
```cmake
set(OpenCV_STATIC ON)
find_package(OpenCV REQUIRED)
target_link_libraries(your_target ${OpenCV_LIBS})
```
其中,`set(OpenCV_STATIC ON)`指定链接静态库,`find_package(OpenCV REQUIRED)`查找opencv库,`target_link_libraries(your_target ${OpenCV_LIBS})`链接静态库。需要注意的是,交叉编译时需要指定正确的库路径和头文件路径。
阅读全文