note:linux opencv

本文介绍如何在CMake中配置OpenCV环境并创建显示图片的应用。通过设置正确的头文件和库路径,可以轻松地利用OpenCV的功能进行图像处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QT:
qtcv.pro

INCLUDEPATH += /usr/local/include \
                /usr/local/include/opencv \
                /usr/local/include/opencv2

LIBS += /usr/local/lib/libopencv_highgui.so \
        /usr/local/lib/libopencv_core.so    \
        /usr/local/lib/libopencv_imgproc.so \
        /usr/local/lib/libopencv_imgcodecs.so

图片等放在:build-qtcv-Desktop-Debug

GCC CMALE:
1.Create a CMake file
Now you have to create your CMakeLists.txt file. It should look like this:

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

Generate the executable

This part is easy, just proceed as with any other project using CMake:

cd <DisplayImage_directory>
cmake .
make

Result

By now you should have an executable (called DisplayImage in this case). You just have to run it giving an image location as an argument, i.e.:

./DisplayImage lena.jpg

LINK:

http://docs.opencv.org/3.2.0/db/df5/tutorial_linux_gcc_cmake.html

内容概要:本文深入探讨了金属氢化物(MH)储氢系统在燃料电池汽车中的应用,通过建立吸收/释放氢气的动态模型和热交换模型,结合实验测试分析了不同反应条件下的性能表现。研究表明,低温环境有利于氢气吸收,高温则促进氢气释放;提高氢气流速和降低储氢材料体积分数能提升系统效率。论文还详细介绍了换热系统结构、动态性能数学模型、吸放氢特性仿真分析、热交换系统优化设计、系统控制策略优化以及工程验证与误差分析。此外,通过三维动态建模、换热结构对比分析、系统级性能优化等手段,进一步验证了金属氢化物储氢系统的关键性能特征,并提出了具体的优化设计方案。 适用人群:从事氢能技术研发的科研人员、工程师及相关领域的研究生。 使用场景及目标:①为储氢罐热管理设计提供理论依据;②推动车载储氢技术的发展;③为金属氢化物储氢系统的工程应用提供量化依据;④优化储氢系统的操作参数和结构设计。 其他说明:该研究不仅通过建模仿真全面验证了论文实验结论,还提出了具体的操作参数优化建议,如吸氢阶段维持25-30°C,氢气流速0.012g/s;放氢阶段快速升温至70-75°C,水速18-20g/min。同时,文章还强调了安全考虑,如最高工作压力限制在5bar以下,温度传感器冗余设计等。未来的研究方向包括多尺度建模、新型换热结构和智能控制等方面。
CMake Error: Generator: execution of make failed. Make command was: ninja -v -j 12 install && 17:39:15 | WARNING: /home/jenkins/workspace/deploy-AD25APA01-T68_G-image/yocto/build/arago-tmp-default-glibc/work/aarch64-oe-linux/opencv/4.5.5-r0/temp/run.do_install.1180602:186 exit 1 from 'eval ${DESTDIR:+DESTDIR=${DESTDIR} }VERBOSE=1 cmake --build '/home/jenkins/workspace/deploy-AD25APA01-T68_G-image/yocto/build/arago-tmp-default-glibc/work/aarch64-oe-linux/opencv/4.5.5-r0/build' "$@" -- ${EXTRA_OECMAKE_BUILD}' 17:39:15 | WARNING: Backtrace (BB generated script): 17:39:15 | #1: cmake_runcmake_build, /home/jenkins/workspace/deploy-AD25APA01-T68_G-image/yocto/build/arago-tmp-default-glibc/work/aarch64-oe-linux/opencv/4.5.5-r0/temp/run.do_install.1180602, line 186 17:39:15 | #2: cmake_do_install, /home/jenkins/workspace/deploy-AD25APA01-T68_G-image/yocto/build/arago-tmp-default-glibc/work/aarch64-oe-linux/opencv/4.5.5-r0/temp/run.do_install.1180602, line 180 17:39:15 | #3: do_install, /home/jenkins/workspace/deploy-AD25APA01-T68_G-image/yocto/build/arago-tmp-default-glibc/work/aarch64-oe-linux/opencv/4.5.5-r0/temp/run.do_install.1180602, line 161 17:39:15 | #4: main, /home/jenkins/workspace/deploy-AD25APA01-T68_G-image/yocto/build/arago-tmp-default-glibc/work/aarch64-oe-linux/opencv/4.5.5-r0/temp/run.do_install.1180602, line 199 17:39:15 NOTE: recipe opencv-4.5.5-r0: task do_install: Failed 17:39:15 ERROR: Task (/home/jenkins/workspace/deploy-AD25APA01-T68_G-image/yocto/build/../sources/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.5.5.bb:do_install) failed with exit code '1' 17:39:15 Pseudo log: 17:39:15 path mismatch [3 links]: ino 248682018 db '/home/jenkins/workspace/deploy-AD25APA01-T68_G-image/yocto/build/arago-tmp-default-glibc/work/aarch64-oe-linux/opencv/4.5.5-r0/package/usr/src/debug/opencv/4.5.5-r0/contrib/modules/intensity_transform/src/bimef.cpp' req '/home/jenkins/workspace/deploy-AD25APA01-T68_G-image/yocto/build/arago-tmp-default-glibc/work/aarch64-oe-linux/opencv/4.5.5-r0/contrib/modules/intensity_transform/src/bimef.cpp'. 17:39:15 Setup complete, sending SIGUSR1 to pid 1180603.
07-03
<think>我们正在处理一个关于在Yocto环境中使用CMake和Ninja构建OpenCV4.5.5时出现编译失败的问题。错误信息是“executionfailed during'make' command”,尽管我们使用的是Ninja。这看起来有些矛盾,因为Ninja通常使用`ninja`命令而不是`make`。根据引用[1]和[2]中的信息,CMake生成器(Generator)可以选择不同的构建工具,比如UnixMakefiles、Ninja等。当生成器选择Ninja时,CMake会期望使用`ninja`命令进行构建,但错误信息中提到了'make'命令,这可能意味着生成器配置或调用构建工具的方式有问题。 在引用[1]中,我们看到一个变量`CMAKE_MAKE_PROGRAM`被设置为`/usr/bin/gmake`(GNU make的别名)。在引用[2]中,提到了在Windows下QtCreator使用jom代替nmake,以及Ninja作为另一种构建工具的可能性。因此,我们需要检查在Yocto环境中CMake的配置,特别是生成器的选择以及`CMAKE_MAKE_PROGRAM`的设置。 步骤: 1. **确认生成器**:在运行CMake时,通过`-G`选项指定生成器。对于Ninja,应该使用`-GNinja`。如果没有指定,CMake可能会根据平台选择默认生成器(在Unix-like系统中通常是Unix Makefiles)。因此,我们需要确保在CMake配置时指定了Ninja生成器。2.**检查`CMAKE_MAKE_PROGRAM`**:当使用Ninja生成器时,CMake应该自动将`CMAKE_MAKE_PROGRAM`设置为Ninja的可执行文件路径。但是,如果环境中存在覆盖(比如通过缓存变量),则可能会被设置为其他值(如`make`)。我们可以通过检查`CMakeCache.txt`文件来确认。3.**环境问题**:Yocto环境可能是一个定制的嵌入式Linux构建环境,可能缺少必要的工具或路径设置。需要确保Ninja已经正确安装,并且在PATH中可用。 4. **构建命令**:在配置完成后,应该使用`ninja`命令进行构建,而不是`make`。错误信息中提到的'make'命令可能意味着构建步骤被错误地调用了`make`。 解决方案: -重新配置CMake,明确指定生成器为Ninja,并确保Ninja可执行文件在PATH中。```bashcmake -G Ninja <other options> ..```-如果上述步骤后,构建时仍然调用了`make`,则可能是构建脚本的问题。应该使用`ninja`命令来构建:```bashninja```-检查`CMakeCache.txt`中`CMAKE_MAKE_PROGRAM`的值,确保它指向Ninja。如果不是,可以在CMake配置时通过选项设置:```bashcmake -DCMAKE_MAKE_PROGRAM=/path/to/ninja ...```-确保Yocto环境中已经安装了Ninja。如果没有,需要先安装Ninja。如果问题仍然存在,可能需要查看具体的构建日志以确定失败的原因(比如编译器错误、依赖缺失等)。由于用户的问题是在Yocto环境中,可能还需要考虑Yocto的交叉编译环境设置。在交叉编译时,可能需要指定工具链文件,并确保工具链中指定的构建工具(如Ninja)与主机环境兼容。 相关问题: 1.在Yocto环境中如何正确安装和配置Ninja?2.如何为OpenCV的交叉编译配置CMake和Ninja? 3.如何解决CMake生成器选择错误导致的构建失败?</think>### CMake与Ninja构建OpenCV失败问题分析与解决 在Yocto环境中使用CMake和Ninja构建OpenCV 4.5.5时出现"execution failed during 'make' command"错误,主要涉及构建工具配置问题。以下是逐步解决方案: --- ### **问题根源分析** 1. **生成器配置冲突** CMake的`CMAKE_MAKE_PROGRAM`变量错误指向`make`而非`ninja`(引用[1]示例)。 当使用`-G Ninja`指定生成器时,此变量应自动设为`ninja`路径。 2. **工具链不兼容** Yocto的交叉编译环境可能需要特殊工具链配置,未正确传递时会导致Ninja调用失败。 3. **环境变量污染** 系统PATH可能包含冲突的构建工具路径(如`make`优先于`ninja`)。 --- ### **解决方案步骤** #### 步骤1:验证Ninja安装与路径 ```bash # 检查ninja是否安装 which ninja # 若未安装,通过Yocto添加 bitbake ninja ``` 确保安装路径(如`/usr/bin/ninja`)在PATH中[^1]。 #### 步骤2:强制指定CMake生成器 ```bash rm -rf CMakeCache.txt # 清除旧配置 cmake -G Ninja \ -D CMAKE_MAKE_PROGRAM=$(which ninja) \ # 显式设置 -D CMAKE_TOOLCHAIN_FILE=/path/to/yocto/toolchain.cmake \ <其他OpenCV选项> .. ``` #### 步骤3:检查工具链文件 Yocto工具链文件(`toolchain.cmake`)需包含: ```cmake # 确保指定Ninja set(CMAKE_GENERATOR "Ninja" CACHE INTERNAL "") set(CMAKE_MAKE_PROGRAM "/usr/bin/ninja" CACHE FILEPATH "") ``` #### 步骤4:构建命令修正 **错误方式**: ```bash make # 仍调用make命令 ``` **正确方式**: ```bash cmake --build . --target all # CMake自动调用ninja # 或直接调用 ninja ``` #### 步骤5:调试构建日志 获取详细错误信息: ```bash ninja -v -d keeprsp # 打印完整命令 ``` 常见失败原因: - 缺少交叉编译依赖库 - 编译器标志不兼容(检查`CFLAGS/CXXFLAGS`) - 并行编译冲突(尝试`-j1`单线程) --- ### **关键配置验证** 检查`CMakeCache.txt`确认关键变量: ```bash grep "CMAKE_MAKE_PROGRAM" CMakeCache.txt # 应为ninja路径 grep "CMAKE_GENERATOR" CMakeCache.txt # 应为Ninja ``` --- ### **备选方案** 若问题持续: 1. **切换生成器**(临时方案) ```bash cmake -G "Unix Makefiles" .. # 改用make make ``` 2. **检查Yocto SDK环境** 确保已正确加载SDK环境脚本: ```bash source /path/to/yocto-sdk/environment-setup-<arch> ``` --- ### **预防措施** 1. 在`CMakeLists.txt`开头添加: ```cmake if(NOT CMAKE_GENERATOR STREQUAL "Ninja") message(FATAL_ERROR "Requires Ninja generator") endif() ``` 2. 使用CMake预设(Presets)固化配置[^2]。 通过上述步骤,可解决Yocto环境中Ninja构建失败问题。若仍有错误,请提供`ninja`输出的完整日志进一步分析。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值