【Tauri】OpenCVのビルド設定

Uncategorized
779 words

Windows11 でOpenCVのビルドをしようとしたら、スゴく手こずったので備忘録。

環境

  • Windows 11 Home 22H2

事前に Tauri で 実行ができること。

手順

Chocolatey をインストール

パッケージ管理ソフトの「Chocolatey」をインストールします。

管理者権限で PowerShell を開き、次のコマンドを実行すると、Chocolatey がインストールされます。

1
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

管理者として実行する

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
PS C:\Windows\system32> Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))                                                                     Forcing web requests to allow TLS v1.2 (Required for requests to Chocolatey.org)
Getting latest version of the Chocolatey package for download.
Not using proxy.
Getting Chocolatey from https://community.chocolatey.org/api/v2/package/chocolatey/1.3.1.
Downloading https://community.chocolatey.org/api/v2/package/chocolatey/1.3.1 to C:\Users*****\AppData\Local\Temp\chocolatey\chocoInstall\chocolatey.zip
Not using proxy.
Extracting C:\Users*****\AppData\Local\Temp\chocolatey\chocoInstall\chocolatey.zip to C:\Users*****\AppData\Local\Temp\chocolatey\chocoInstall
Installing Chocolatey on the local machine
Creating ChocolateyInstall as an environment variable (targeting 'Machine')
Setting ChocolateyInstall to 'C:\ProgramData\chocolatey'
WARNING: It's very likely you will need to close and reopen your shell
before you can use choco.
Restricting write permissions to Administrators
We are setting up the Chocolatey package repository.
The packages themselves go to 'C:\ProgramData\chocolatey\lib'
(i.e. C:\ProgramData\chocolatey\lib\yourPackageName).
A shim file for the command line goes to 'C:\ProgramData\chocolatey\bin'
and points to an executable in 'C:\ProgramData\chocolatey\lib\yourPackageName'.

Creating Chocolatey folders if they do not already exist.

WARNING: You can safely ignore errors related to missing log files when
upgrading from a version of Chocolatey less than 0.9.9.
'Batch file could not be found' is also safe to ignore.
'The system cannot find the file specified' - also safe.
chocolatey.nupkg file not installed in lib.
Attempting to locate it from bootstrapper.
PATH environment variable does not have C:\ProgramData\chocolatey\bin in it. Adding...
警告: Not setting tab completion: Profile file does not exist at
'C:\Users*****\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'.
Chocolatey (choco.exe) is now ready.
You can call choco from anywhere, command line or powershell by typing choco.
Run choco /? for a list of functions.
You may need to shut down and restart powershell and/or consoles
first prior to using choco.
Ensuring Chocolatey commands are on the path
Ensuring chocolatey.nupkg is in the lib folder

確認

次のコマンドで正しくインストールできたか確認できます。

1
choco -v

OpenCV パッケージのインストール

次のコマンドで OpenCV のパッケージをインストールします。

1
choco install llvm opencv

次の確認が表示されたら A を入力して進めます。

1
Do you want to run the script?([Y]es/[A]ll - yes to all/[N]o/[P]rint): A

インストールが成功すると C:\tools に OpenCV ができます。

環境変数の設定

今インストールされた OpenCV をシステムの環境変数に設定します。

  • OPENCV_INCLUDE_PATHS: C:\tools\opencv\build\include

  • OPENCV_LINK_LIBS: opencv_world460

  • OPENCV_LINK_PATHS: C:\tools\opencv\build\x64\vc15\lib

ちなみに opencv_world460 の 「460」は、C:\tools\opencv\build\x64\vc15\bin に入ってる DLL から推測して設定します。

設定が終わったら、再起動をして完了です。

確認

次のコマンドで Tauri をデバッグ実行して、問題なく表示されるか確認します。

1
npm run tauri dev

画面が表示されない

Tauri に OpenCV を入れてデバッグ実行したら、画面が表示されなくなった。

そんな場合は、デバッグ実行時に作られる EXEと同じ階層に「opencv_world460.dll」を入れると表示されるようになります。

「{プロジェクトルート}\src-tauri\target\debug」に「”C:\tools\opencv\build\x64\vc15\bin\opencv_world460.dll”」をコピー

https://github.com/twistedfall/opencv-rust/issues/118#issuecomment-619608278

参考

https://github.com/twistedfall/opencv-rust