diff --git a/.gitignore b/.gitignore index e59e1fe..434fa81 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ build/ +build-windows/ cmake-build-*/ .qt/ .qtc/ diff --git a/QtOpenCVImageTool.zip b/QtOpenCVImageTool.zip index 194aacc..d163681 100644 Binary files a/QtOpenCVImageTool.zip and b/QtOpenCVImageTool.zip differ diff --git a/build_windows.bat b/build_windows.bat new file mode 100644 index 0000000..6809b6c --- /dev/null +++ b/build_windows.bat @@ -0,0 +1,42 @@ +@echo off +setlocal + +rem Usage: +rem build_windows.bat C:\Qt\6.6.0\mingw_64 C:\opencv\build +rem build_windows.bat C:\Qt\6.6.0\msvc2019_64 C:\opencv\build\x64\vc16\lib "Visual Studio 17 2022" + +if "%~1"=="" ( + echo Usage: %~nx0 ^ ^ [CMakeGenerator] + echo Example MinGW: %~nx0 C:\Qt\6.6.0\mingw_64 C:\opencv\build "MinGW Makefiles" + echo Example MSVC : %~nx0 C:\Qt\6.6.0\msvc2019_64 C:\opencv\build\x64\vc16\lib "Visual Studio 17 2022" + exit /b 1 +) + +if "%~2"=="" ( + echo Missing OpenCV_DIR. + exit /b 1 +) + +set QT_DIR=%~1 +set OPENCV_DIR=%~2 +set GENERATOR=%~3 + +if "%GENERATOR%"=="" ( + set GENERATOR=MinGW Makefiles +) + +if not exist build-windows ( + mkdir build-windows +) + +cmake -S . -B build-windows -G "%GENERATOR%" -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%QT_DIR%" -DOpenCV_DIR="%OPENCV_DIR%" +if errorlevel 1 exit /b %errorlevel% + +cmake --build build-windows --config Release +if errorlevel 1 exit /b %errorlevel% + +echo. +echo Build finished. +echo If the exe cannot start because DLLs are missing, run: +echo "%QT_DIR%\bin\windeployqt.exe" build-windows\QtOpenCVImageTool.exe +echo Then copy OpenCV runtime DLLs to the exe directory. diff --git a/readme.md b/readme.md index a261511..a7fca5b 100644 --- a/readme.md +++ b/readme.md @@ -47,6 +47,18 @@ OpenCV_DIR=C:/opencv/build/x64/vc16/lib ### 命令行构建示例 +也可以直接使用项目提供的 `build_windows.bat`: + +```bat +build_windows.bat C:\Qt\6.6.0\mingw_64 C:\opencv\build "MinGW Makefiles" +``` + +或 MSVC: + +```bat +build_windows.bat C:\Qt\6.6.0\msvc2019_64 C:\opencv\build\x64\vc16\lib "Visual Studio 17 2022" +``` + MinGW 示例: ```bat