robocup-zunda’s blog

高崎高校物理部の部活です。

OpenCVのインストール中に遭遇したエラー(CMake Error: Problem with archive_write_finish_entry()、CMake Error: Problem extracting tar)

こんにちは、参禅町です。今日は、wslでC++のためのOpenCVのインストール中にエラーに遭遇したのでそれについて書いていきます。

環境

Windows 11 Pro 22H2
WSL2
Ubuntu 22.04.2 LTS

エラー内容

qiita.com

こちらの記事を参考にWSLでcmakeコマンド(cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_TBB=ON -DWITH_OPENGL=ON -DOPENCV_EXTRA_MODULES_PATH=/mnt/l/git/opencv_contrib/modules -DOPENCV_GENERATE_PKGCONFIG=ON ..)を実行したところ、以下のようなエラーが発生しました。

CMake Error: Problem with archive_write_finish_entry(): Can't restore time
CMake Error: Problem extracting tar: /mnt/l/git/opencv/.cache/ade/fa4b3e25167319cb0fa9432ef8281945-v0.1.2a.zip
CMake Error at cmake/OpenCVDownload.cmake:286 (message):
  ADE: Unpack failed: 1
Call Stack (most recent call first):
  modules/gapi/cmake/DownloadADE.cmake:5 (ocv_download)
  modules/gapi/cmake/init.cmake:20 (include)
  cmake/OpenCVModule.cmake:298 (include)
  cmake/OpenCVModule.cmake:361 (_add_modules_1)
  cmake/OpenCVModule.cmake:408 (ocv_glob_modules)
  CMakeLists.txt:956 (ocv_register_modules)

実際の画面

原因

いろいろ検索した結果、以下のIssueが出てきました。この方の場合は、OpenCVリポジトリがあるストレージがフォーマットがexFATであることが原因だったそうです。

github.com

私は今回の場合、外付けssdリポジトリをクローンしてインストールを行っていました。そこで、ssdのフォーマットを確認したところ、

ストレージのプロパティ
と、フォーマットがexFATになっていました。

解決策

原因がストレージのフォーマットなので、exFAT以外でフォーマットされているストレージにOpenCVのファイルを移動してインストールを行えばよいです。フォルダが移動されるので、フォルダ ごとコピーした場合は、cmakeコマンドを実行する前にCMakeCache.txtを実行するのを忘れないように気を付けてください。