学习OpenCV3:MinGW编译OpenCV到vs_version.rc.obj处出错


1. 错误描述

gcc: error: long: No such file or directory

[ 65% ] Building RC object modules/world/CMakeFiles/opencv_world.dir/vs_version.rc.obj
gcc: error: long: No such file or directory
C:\Mingw-w64\mingw32\bin\windres.exe: preprocessing failed.
mingw32-make[2]: *** [modules\world\CMakeFiles\opencv_world.dir\build.make:11240: modules/world/CMakeFiles/opencv_world.dir/vs_version.rc.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:4789: modules/world/CMakeFiles/opencv_world.dir/all] Error 2
mingw32-make: *** [Makefile:179: all] Error 2

2. 分析

  打开modules\world\CMakeFiles\opencv_world.dir\build.make的第11240行发现如下内容,可发现错误原因是未成功生成vs_version.rc.obj。

modules/world/CMakeFiles/opencv_world.dir/vs_version.rc.obj: modules/world/CMakeFiles/opencv_world.dir/flags.make
modules/world/CMakeFiles/opencv_world.dir/vs_version.rc.obj: modules/world/vs_version.rc
	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=D:\opencv\bulid_mingw\CMakeFiles --progress-num=$(CMAKE_PROGRESS_801) "Building RC object modules/world/CMakeFiles/opencv_world.dir/vs_version.rc.obj"
	cd /d D:\opencv\bulid_mingw\modules\world && C:\Mingw-w64\mingw32\bin\windres.exe -O coff $(RC_DEFINES) $(RC_INCLUDES) $(RC_FLAGS) D:\opencv\bulid_mingw\modules\world\vs_version.rc CMakeFiles\opencv_world.dir\vs_version.rc.obj

3. 解决方法

  根据build.make中的错误行,自己修改编译命令,手动生成vs_version.rc.obj,并重新mingw32-make。

cd /d D:\opencv\bulid_mingw\modules\world
C:\Mingw-w64\mingw32\bin\windres.exe D:\opencv\bulid_mingw\modules\world\vs_version.rc -O coff CMakeFiles\opencv_world.dir\vs_version.rc.obj

编译命令

生成vs_version.rc.obj

重新mingw32-make

OpenCV中,如果你遇到了 "Can't find required data file: haarcascades/haarcascade_frontalface_alt.xml" 这样的错误,这意味着程序试图加载一个在预训练的Haar特征分类器文件(如面部检测用的XML文件),但是无法找到这个文件。通常这类文件是OpenCV库的一部分,它们应该包含在OpenCV的安装包中,或者是在你下载的OpenCV的samples中。 这个问题可能是由于以下几个原因造成的: 1. OpenCV没有正确安装,相关的数据文件没有被解压或复制到正确的目录。 2. 程序中指定的文件路径不正确,导致无法找到该文件。 3. 在编译和运行程序之前,没有正确设置OpenCV的环境变量,特别是`OPENCV_DATA_PATH`环境变量。 为了解决这个问题,你可以尝试以下步骤: 1. 确认OpenCV是否已经正确安装,并且数据文件确实存在于你的系统中。 2. 检查程序中的文件路径是否正确,确保它指向了正确的位置,通常是OpenCV安装目录下的`data/haarcascades/`文件夹。 3. 如果你在编译程序之前设置了`OPENCV_DATA_PATH`环境变量,请确保其值正确无误。 4. 如果是在使用OpenCV提供的示例代码,确保示例代码中的路径与你系统的实际路径相匹配。 下面是一个简单的检查和解决步骤: 1. 打开命令行或终端,运行以下命令检查OpenCV是否安装成功(假设你的OpenCV安装在`/usr/local/opencv`目录): ```bash ls /usr/local/opencv/share/opencv4/haarcascades/ ``` 如果这个目录存在并且包含了`haarcascade_frontalface_alt.xml`文件,说明文件路径可能是正确的。 2. 如果你是在Windows系统上,文件路径可能类似于: ``` C:\opencv\build\etc\haarcascades\haarcascade_frontalface_alt.xml ``` 检查该路径下的文件是否存在。 3. 如果路径正确无误,但在运行程序时仍然报错,请检查程序中加载文件的代码行,确保文件名和路径完全匹配。 4. 如果路径不正确,需要修改程序中的文件路径,使其指向正确的文件位置。
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值