如题,今天我在windows上使用CMake编译OpenCV时,出现了以下错误:
ADE: Download: v0.1.1f.zip
CMake Error: Problem with archive_write_finish_entry(): Can't restore time
CMake Error: Problem extracting tar: E:/Projects/temp/OpenCV/opencv/.cache/ade/b624b995ec9c439cbc2e9e6ee940d3a2-v0.1.1f.zip
CMake Error at cmake/OpenCVDownload.cmake:240 (message):
ADE: Unpack failed: 1
Call Stack (most recent call first):
modules/gapi/cmake/DownloadADE.cmake:5 (ocv_download)
modules/gapi/cmake/init.cmake:19 (include)
cmake/OpenCVModule.cmake:312 (include)
cmake/OpenCVModule.cmake:375 (_add_modules_1)
modules/CMakeLists.txt:7 (ocv_glob_modules)
经过查询发现是windows上默认无法使用tar命令进行解压,故相关资源无法被使用。因此我们需要修改CMake配置文件中的解压命令。
该命令位于OpenCV-4.0.0/cmake/OpenCVDownload.cmake中的第227行中,不同版本可能略有差异,可以在226行周围查找此行代码:
execute_process(COMMAND "${CMAKE_COMMAND}" -E tar xzf "${CACHE_CANDIDATE}"
将其中的解压命令更改为自己的解压缩软件。本人用的是BandiZip,故将其更改为:
execute_process(COMMAND bc x "${CACHE_CANDIDATE}"
如果您使用的是7zip,将“bc”更改为“7z”即可,其他不用改动。
需要注意的是,无论使用那个解压软件,都需要将解压软件添加到环境变量中,确保命令行可以调用您的解压软件。添加环境变量请参考:将程序安装路径添加到环境变量PATH里win10 - 木子杰
发表评论