【资源】OpenCV-MinGW编译资源及手动编译方法

【资源】OpenCV-MinGW编译资源及手动编译方法

Denvo 树犹如此,人何以堪

前言

我在我的项目中使用到了OpenCV,但我的项目的编译器是MinGW,而官方在Windows环境下仅提供MSVC编译的版本,于是我只能去社区中找找有没有预编译版本。可惜的是,OpenCV_MingW仓库中只有OpenCV4.11.0的MinGW预编译版本,但它使用MinGW版本是8.10和13.1.0,比我的(15.2.0)旧,并且即使我降低自己的MinGW版本到13.1.0,我的代码仍然无法使用这个仓库中的预编译好的dll文件,提示无法找到OpenCV的dll的程序入口点。OpenCV-MinGW-Build和其他仓库则只有更旧版本的OpenCV。没办法,我只好选择自己编译。

OpenCV预编译文件下载

我使用Github Actions创建了一个每天凌晨4点(北京时间)自动检测新版本并编译OpenCV的仓库,我已经验证它能满足我的要求:Github Releases

具体的编译配置与下面的手动编译方法中的配置是一样的。

手动编译方法

下面我编译出来的文件也上传到了Github了。

前置准备

  • Git
  • MinGW(并配置好环境变量)
  • CMake
  • 可靠的网络连接

操作流程

拉取OpenCV源码

  1. 创建一个空文件夹作为OpenCV源码的存放目录,比如我使用D:\temp\opencv\sources

  2. 打开命令行终端,将工作目录切换到上一步的文件夹。
    我这里使用:

    1
    2
    3
    4
    5
    C:\Users\Administrator>D:

    D:\>cd temp\opencv\sources

    D:\temp\opencv\sources>
  3. 使用git clone https://github.com/opencv/opencv.git命令拉取OpenCV的源代码。如果因网络问题拉取不成功的,可选择使用代理。

    要使Git使用代理,请在命令行中输入如下两条命令(我的代理运行在7897端口)。

    1
    2
    git config --global http.proxy "http://127.0.0.1:7897"
    git config --global https.proxy "https://127.0.0.1:7897"

    如果不再需要让Git使用代理,则在命令行输入如下两条命令。

    1
    2
    git config --global --unset http.proxy
    git config --global --unset https.proxy

    我的操作步骤如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    D:\temp\opencv\sources>git config --global http.proxy "http://127.0.0.1:7897"

    D:\temp\opencv\sources>git config --global https.proxy "https://127.0.0.1:7897"

    D:\temp\opencv\sources>git clone https://github.com/opencv/opencv.git
    Cloning into 'opencv'...
    remote: Enumerating objects: 348939, done.
    remote: Counting objects: 100% (27/27), done.
    remote: Compressing objects: 100% (15/15), done.
    remote: Total 348939 (delta 12), reused 12 (delta 12), pack-reused 348912 (from 2)
    Receiving objects: 100% (348939/348939), 537.20 MiB | 12.55 MiB/s, done.
    Resolving deltas: 100% (243645/243645), done.
    Updating files: 100% (7661/7661), done.

    D:\temp\opencv\sources>git config --global --unset http.proxy

    D:\temp\opencv\sources>git config --global --unset https.proxy

    D:\temp\opencv\sources>

创建CMake编译配置

  1. 安装了CMake之后,你应该会有一个叫cmake-gui.exe的程序(位于CMake安装位置下的bin文件夹)。启动这个程序。程序界面如下:

    CMake-GUI程序界面
    CMake-GUI程序界面

  2. 创建一个文件夹作为OpenCV的编译输出目录。比如我选择D:\temp\opencv\build

  3. CMake程序中,在Where is the source code处填入源码路径。我的是D:\temp\opencv\sources\opencv。然后在Where to build the binaries处填入刚才创建的编译输出目录文件夹。我的是D:\temp\opencv\build。填写完毕后点击窗口左下角的Configure按钮。
    界面如下:

    CMake-GUI初次配置
    CMake-GUI初次配置

  4. 当上一步完成之后,会弹出如下窗口。请在Specify the generator for this project处选择MinGW Makefiles,并在下方选择Specify native compilers,然后点击Next按钮。

    CMake-GUI弹出窗口1
    CMake-GUI弹出窗口1

  5. 选择编译器。直接在对应语言的框中填入你的编译器路径即可。一般编译器在MinGW的安装目录内的bin文件夹内。填入之后,点击Finish按钮。

    选择编译器
    选择编译器

  6. 刚才的弹出式窗口会关闭,此时会开始加载一段时间,需要耐心等待一下(因为需要下载文件)。

    加载中
    加载中

  7. 加载结束后请检查窗口底部的输出部分,寻找到对应的红字部分,如果有Download failed的字样,就看它的上几行,找到下载失败的内容(我这里是opencv_videoio_ffmpeg.dll)。

    去编译输出目录文件夹中找到CMakeDownloadLog.txt(我这里的完整路径是D:\temp\opencv\build\CMakeDownloadLog.txt),根据下载失败的内容,在CMakeDownloadLog.txt中查找到类似的行,比如这样:

    1
    2
    #do_copy "opencv_videoio_ffmpeg.dll" "2821ea672a11147a70974d760a54e9bc" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/ea9240e39bc0d6a69d2b1f0ba4513bdc7612a41e/ffmpeg/opencv_videoio_ffmpeg.dll" "D:/temp/opencv/build/3rdparty/ffmpeg"
    #missing "D:/temp/opencv/build/3rdparty/ffmpeg/opencv_videoio_ffmpeg.dll"

    手动下载这些下载失败的文件,并根据如上两行的内容指引放在相应的位置。比如我在这里需要手动访问https://raw.githubusercontent.com/opencv/opencv_3rdparty/ea9240e39bc0d6a69d2b1f0ba4513bdc7612a41e/ffmpeg/opencv_videoio_ffmpeg.dll下载文件,然后把下载的文件名改成opencv_videoio_ffmpeg.dll,然后复制到D:/temp/opencv/build/3rdparty/ffmpeg文件夹中。

    注意,下载失败的文件可能不止一个!请找到每个下载失败的文件并手动下载!

  8. 在如图所示的位置找到以下列出的条目并做相应的修改,完成后点击左下角的Configure,等待一段时间,如果加载完成后没有再出现下载失败的提示(如果上一步把所有下载失败的文件都手动下载好并放到对应目录下的话,这次应该不会再出现下载失败的提示了。如果仍然存在下载失败的文件,请重新做一遍第7步),则点击Generate按钮。

    CMake-GUI条目
    CMake-GUI条目

    条目修改解释
    BUILD_EXAMPLES勾选上Build all examples
    BUILD_opencv_world勾选上Include opencv_world module into the OpenCV build
    CPU_DISPATCH清空里面的值Specify list of dispatched CPU optimizations
    WITH_OPENGL勾选上Include OpenGL support
    我个人还做了这些操作
    条目操作解释
    BUILD_CUDA_STUBS勾选上Build CUDA modules stubs when no CUDA SDK
    OPENCV_DNN_OPENVINO勾选上Build with OpenVINO support(2021.4+)
    OPENCV_ENABLE_NONFREE勾选上Enable non-free algorithms
    OPENCV_TEST_DNN_OPENVINO勾选上Build test with OpenVINO code
    WITH_OPENVINO勾选上Include Intel OpenVINO toolkit support
    WITH_VULKAN勾选上Include Vulkan support
  9. 当窗口底部出现Generating done的字样时,说明CMake编译配置已经生成完毕。此时就可以关闭CMake的窗口了。

    CMake-GUI配置完成
    CMake-GUI配置完成

编译OpenCV

  1. 在编译输出目录处打开终端,输入mingw32-make -j 20即可开始编译。其中-j选项指定编译的线程数量,后面的20则是具体分配的线程数量。输出结果:

    控制台输出结果
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    478
    479
    480
    481
    482
    483
    484
    485
    486
    487
    488
    489
    490
    491
    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    504
    505
    506
    507
    508
    509
    510
    511
    512
    513
    514
    515
    516
    517
    518
    519
    520
    521
    522
    523
    524
    525
    526
    527
    528
    529
    530
    531
    532
    533
    534
    535
    536
    537
    538
    539
    540
    541
    542
    543
    544
    545
    546
    547
    548
    549
    550
    551
    552
    553
    554
    555
    556
    557
    558
    559
    560
    561
    562
    563
    564
    565
    566
    567
    568
    569
    570
    571
    572
    573
    574
    575
    576
    577
    578
    579
    580
    581
    582
    583
    584
    585
    586
    587
    588
    589
    590
    591
    592
    593
    594
    595
    596
    597
    598
    599
    600
    601
    602
    603
    604
    605
    606
    607
    608
    609
    610
    611
    612
    613
    614
    615
    616
    617
    618
    619
    620
    621
    622
    623
    624
    625
    626
    627
    628
    629
    630
    631
    632
    633
    634
    635
    636
    637
    638
    639
    640
    641
    642
    643
    644
    645
    646
    647
    648
    649
    650
    651
    652
    653
    654
    655
    656
    657
    658
    659
    660
    661
    662
    663
    664
    665
    666
    667
    668
    669
    670
    671
    672
    673
    674
    675
    676
    677
    678
    679
    680
    681
    682
    683
    684
    685
    686
    687
    688
    689
    690
    691
    692
    693
    694
    695
    696
    697
    698
    699
    700
    701
    702
    703
    704
    705
    706
    707
    708
    709
    710
    711
    712
    713
    714
    715
    716
    717
    718
    719
    720
    721
    722
    723
    724
    725
    726
    727
    728
    729
    730
    731
    732
    733
    734
    735
    736
    737
    738
    739
    740
    741
    742
    743
    744
    745
    746
    747
    748
    749
    750
    751
    752
    753
    754
    755
    756
    757
    758
    759
    760
    761
    762
    763
    764
    765
    766
    767
    768
    769
    770
    771
    772
    773
    774
    775
    776
    777
    778
    D:\temp\opencv\build>mingw32-make -j 20
    [ 0%] Built target opencv_dnn_plugins
    [ 0%] Built target opencv_highgui_plugins
    [ 0%] Built target opencv_videoio_plugins
    .......
    [ 7%] Building CXX object 3rdparty/protobuf/CMakeFiles/libprotobuf.dir/src/google/protobuf/stubs/structurally_valid.cc.obj
    [ 7%] Linking CXX static library 3rdparty\lib\libade.a
    [ 7%] Building C object 3rdparty/libwebp/CMakeFiles/libwebp.dir/src/dsp/cost_mips_dsp_r2.c.obj
    D:\temp\opencv\sources\opencv\3rdparty\openexr\Iex\IexBaseExc.cpp:198: warning: ignoring '#pragma optimize ' [-Wunknown-pragmas]
    198 | #pragma optimize("", off)
    [ 7%] Building C object 3rdparty/libpng/CMakeFiles/libpng.dir/pngpread.c.obj
    [ 7%] Building CXX object 3rdparty/openexr/CMakeFiles/IlmImf.dir/IlmImf/ImfAttribute.cpp.obj
    [ 7%] Built target ade
    ......
    [ 24%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/core/src/matmul.dispatch.cpp.obj
    [ 24%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/core/src/matrix.cpp.obj
    [ 24%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/core/src/matrix_c.cpp.obj
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp: In function 'cv::ocl::Context& cv::directx::ocl::initializeContextFromD3D11Device(ID3D11Device*)':
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:492:21: warning: converting to non-pointer type 'cl_context_properties' {aka 'long long int'} from NULL [-Wconversion-null]
    492 | };
    | ^
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:492:21: warning: converting to non-pointer type 'cl_context_properties' {aka 'long long int'} from NULL [-Wconversion-null]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:519:21: warning: converting to non-pointer type 'cl_context_properties' {aka 'long long int'} from NULL [-Wconversion-null]
    519 | };
    | ^
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:519:21: warning: converting to non-pointer type 'cl_context_properties' {aka 'long long int'} from NULL [-Wconversion-null]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp: In function 'cv::ocl::Context& cv::directx::ocl::initializeContextFromD3D10Device(ID3D10Device*)':
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:605:17: warning: converting to non-pointer type 'cl_context_properties' {aka 'long long int'} from NULL [-Wconversion-null]
    605 | };
    | ^
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:605:17: warning: converting to non-pointer type 'cl_context_properties' {aka 'long long int'} from NULL [-Wconversion-null]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:633:17: warning: converting to non-pointer type 'cl_context_properties' {aka 'long long int'} from NULL [-Wconversion-null]
    633 | };
    | ^
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:633:17: warning: converting to non-pointer type 'cl_context_properties' {aka 'long long int'} from NULL [-Wconversion-null]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp: In function 'cv::ocl::Context& cv::directx::ocl::initializeContextFromDirect3DDevice9Ex(IDirect3DDevice9Ex*)':
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:718:17: warning: converting to non-pointer type 'cl_context_properties' {aka 'long long int'} from NULL [-Wconversion-null]
    718 | };
    | ^
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:718:17: warning: converting to non-pointer type 'cl_context_properties' {aka 'long long int'} from NULL [-Wconversion-null]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:747:17: warning: converting to non-pointer type 'cl_context_properties' {aka 'long long int'} from NULL [-Wconversion-null]
    747 | };
    | ^
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:747:17: warning: converting to non-pointer type 'cl_context_properties' {aka 'long long int'} from NULL [-Wconversion-null]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp: In function 'cv::ocl::Context& cv::directx::ocl::initializeContextFromDirect3DDevice9(IDirect3DDevice9*)':
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:832:17: warning: converting to non-pointer type 'cl_context_properties' {aka 'long long int'} from NULL [-Wconversion-null]
    832 | };
    | ^
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:832:17: warning: converting to non-pointer type 'cl_context_properties' {aka 'long long int'} from NULL [-Wconversion-null]
    [ 24%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/core/src/matrix_decomp.cpp.obj
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:862:17: warning: converting to non-pointer type 'cl_context_properties' {aka 'long long int'} from NULL [-Wconversion-null]
    862 | };
    | ^
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:862:17: warning: converting to non-pointer type 'cl_context_properties' {aka 'long long int'} from NULL [-Wconversion-null]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp: In function 'void cv::directx::__convertToD3D11Texture2DKHR(cv::InputArray, ID3D11Texture2D*)':
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:959:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::Height' [-Wmissing-field-initializers]
    959 | D3D11_TEXTURE2D_DESC desc = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:959:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::MipLevels' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:959:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::ArraySize' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:959:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::Format' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:959:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::SampleDesc' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:959:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::Usage' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:959:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::BindFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:959:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::CPUAccessFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:959:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::MiscFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp: In function 'void cv::directx::__convertToD3D11Texture2DNV(cv::InputArray, ID3D11Texture2D*)':
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1059:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::Height' [-Wmissing-field-initializers]
    1059 | D3D11_TEXTURE2D_DESC desc = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1059:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::MipLevels' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1059:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::ArraySize' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1059:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::Format' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1059:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::SampleDesc' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1059:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::Usage' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1059:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::BindFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1059:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::CPUAccessFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1059:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::MiscFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp: In function 'void cv::directx::__convertFromD3D11Texture2DKHR(ID3D11Texture2D*, cv::OutputArray)':
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1157:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::Height' [-Wmissing-field-initializers]
    1157 | D3D11_TEXTURE2D_DESC desc = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1157:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::MipLevels' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1157:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::ArraySize' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1157:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::Format' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1157:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::SampleDesc' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1157:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::Usage' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1157:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::BindFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1157:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::CPUAccessFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1157:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::MiscFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp: In function 'void cv::directx::__convertFromD3D11Texture2DN(ID3D11Texture2D*, cv::OutputArray)':
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1254:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::Height' [-Wmissing-field-initializers]
    1254 | D3D11_TEXTURE2D_DESC desc = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1254:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::MipLevels' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1254:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::ArraySize' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1254:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::Format' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1254:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::SampleDesc' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1254:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::Usage' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1254:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::BindFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1254:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::CPUAccessFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1254:37: warning: missing initializer for member 'D3D11_TEXTURE2D_DESC::MiscFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp: In function 'void cv::directx::convertToD3D10Texture2D(cv::InputArray, ID3D10Texture2D*)':
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1413:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::Height' [-Wmissing-field-initializers]
    1413 | D3D10_TEXTURE2D_DESC desc = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1413:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::MipLevels' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1413:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::ArraySize' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1413:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::Format' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1413:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::SampleDesc' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1413:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::Usage' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1413:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::BindFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1413:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::CPUAccessFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1413:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::MiscFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp: In function 'void cv::directx::convertFromD3D10Texture2D(ID3D10Texture2D*, cv::OutputArray)':
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1476:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::Height' [-Wmissing-field-initializers]
    1476 | D3D10_TEXTURE2D_DESC desc = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1476:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::MipLevels' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1476:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::ArraySize' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1476:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::Format' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1476:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::SampleDesc' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1476:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::Usage' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1476:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::BindFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1476:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::CPUAccessFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\core\src\directx.cpp:1476:37: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::MiscFlags' [-Wmissing-field-initializers]
    [ 24%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/core/src/matrix_expressions.cpp.obj
    [ 24%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/core/src/matrix_iterator.cpp.obj
    [ 24%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/core/src/matrix_operations.cpp.obj
    ......
    [ 37%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/features2d/src/gftt.cpp.obj
    [ 37%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/features2d/src/kaze.cpp.obj
    [ 37%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/features2d/src/kaze/AKAZEFeatures.cpp.obj
    D:\temp\opencv\sources\opencv\modules\dnn\src\vkcom\vulkan\vk_loader.cpp: In function 'bool cv::dnn::vkcom::loadVulkanEntry()':
    D:\temp\opencv\sources\opencv\modules\dnn\src\vkcom\vulkan\vk_loader.cpp:21:9: warning: cast between incompatible function types from 'FARPROC' {aka 'long long int (*)()'} to 'PFN_vkGetInstanceProcAddr' {aka 'void (* (*)(VkInstance_T*, const char*))()'} [-Wcast-function-type]
    21 | (PFN_vkGetInstanceProcAddr)GetProcAddress(handle, "vkGetInstanceProcAddr");
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\dnn\src\vkcom\vulkan\vk_loader.cpp:103:29: note: in expansion of macro 'GET_VK_ENTRY_POINT'
    103 | vkGetInstanceProcAddr = GET_VK_ENTRY_POINT(handle);
    | ^~~~~~~~~~~~~~~~~~
    [ 38%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/features2d/src/kaze/KAZEFeatures.cpp.obj
    [ 38%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/features2d/src/kaze/nldiffusion_functions.cpp.obj
    [ 38%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/features2d/src/kaze/fed.cpp.obj
    ......
    [ 40%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/calib3d/src/epnp.cpp.obj
    [ 40%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/calib3d/src/fisheye.cpp.obj
    [ 40%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/calib3d/src/five-point.cpp.obj
    D:\temp\opencv\sources\opencv\modules\videoio\src\cap_dshow.cpp:690:26: warning: 'virtual ULONG SampleGrabberCallback::AddRef()' can be marked override [-Wsuggest-override]
    690 | STDMETHODIMP_(ULONG) AddRef() { return 1; }
    | ^~~~~~
    D:\temp\opencv\sources\opencv\modules\videoio\src\cap_dshow.cpp:691:26: warning: 'virtual ULONG SampleGrabberCallback::Release()' can be marked override [-Wsuggest-override]
    691 | STDMETHODIMP_(ULONG) Release() { return 2; }
    | ^~~~~~~
    D:\temp\opencv\sources\opencv\modules\videoio\src\cap_dshow.cpp:695:18: warning: 'virtual HRESULT SampleGrabberCallback::QueryInterface(const IID&, void**)' can be marked override [-Wsuggest-override]
    695 | STDMETHODIMP QueryInterface(REFIID, void **ppvObject){
    | ^~~~~~~~~~~~~~
    ←[01m←[KD:\temp\opencv\sources\opencv\modules\videoio\src\cap_dshow.cpp:703:18:←[m←[K ←[01;35m←[Kwarning: ←[m←[K'←[01m←D:\temp\opencv\sources\opencv\modules\videoio\src\cap_dshow.cpp:727:18: warning: 'virtual HRESULT SampleGrabberCallback:BufferCB(double, BYTE*, long int)' can be marked override [-Wsuggest-override]
    727 | STDMETHODIMP BufferCB(double, BYTE *, long){
    | ^~~~~~~~
    [ 40%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/calib3d/src/fundam.cpp.obj
    [ 40%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/calib3d/src/homography_decomp.cpp.obj
    [ 40%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/calib3d/src/ippe.cpp.obj
    ......
    [ 42%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/objdetect/src/barcode_decoder/common/utils.cpp.obj
    [ 42%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/objdetect/src/barcode_decoder/ean13_decoder.cpp.obj
    [ 42%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/objdetect/src/barcode_decoder/ean8_decoder.cpp.obj
    In file included from D:/temp/opencv/sources/opencv/modules/imgproc/include/opencv2/imgproc/types_c.h:46,
    from D:/temp/opencv/sources/opencv/modules/imgproc/include/opencv2/imgproc/imgproc_c.h:46,
    from D:\temp\opencv\sources\opencv\modules\highgui\src\precomp.hpp:61,
    from D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:42:
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'CvRect cvGetWindowRect_W32(const char*)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:527:5: note: in expansion of macro 'CV_FUNCNAME'
    527 | CV_FUNCNAME("cvGetWindowRect_W32");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'cv::Rect getImageRect_(CvWindow&)':
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:546:21: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    546 | RECT rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:546:21: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:546:21: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'double cvGetModeWindow_W32(const char*)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:556:5: note: in expansion of macro 'CV_FUNCNAME'
    556 | CV_FUNCNAME("cvGetModeWindow_W32");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void cvSetModeWindow_W32(const char*, double)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:574:5: note: in expansion of macro 'CV_FUNCNAME'
    574 | CV_FUNCNAME("cvSetModeWindow_W32");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'bool setModeWindow_(CvWindow&, int)':
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:614:29: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    614 | RECT rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:614:29: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:614:29: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'double getPropVsync_(CvWindow&)':
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:732:30: warning: cast between incompatible function types from 'PROC' {aka 'long long int (*)()'} to 'PFNWGLGETEXTENSIONSSTRINGEXTPROC' {aka 'const char* (*)()'} [-Wcast-function-type]
    732 | wglGetExtensionsString = (PFNWGLGETEXTENSIONSSTRINGEXTPROC)wglGetProcAddress("wglGetExtensionsStringEXT");
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:745:26: warning: cast between incompatible function types from 'PROC' {aka 'long long int (*)()'} to 'PFNWGLGETSWAPINTERVALPROC' {aka 'int (*)()'} [-Wcast-function-type]
    745 | wglGetSwapInterval = (PFNWGLGETSWAPINTERVALPROC)wglGetProcAddress("wglGetSwapIntervalEXT");
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'bool setPropVsync_(CvWindow&, bool)':
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:785:30: warning: cast between incompatible function types from 'PROC' {aka 'long long int (*)()'} to 'PFNWGLGETEXTENSIONSSTRINGEXTPROC' {aka 'const char* (*)()'} [-Wcast-function-type]
    785 | wglGetExtensionsString = (PFNWGLGETEXTENSIONSSTRINGEXTPROC)wglGetProcAddress("wglGetExtensionsStringEXT");
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:798:23: warning: cast between incompatible function types from 'PROC' {aka 'long long int (*)()'} to 'PFNWGLSWAPINTERVALPROC' {aka 'int (*)(int)'} [-Wcast-function-type]
    798 | wglSwapInterval = (PFNWGLSWAPINTERVALPROC)wglGetProcAddress("wglSwapIntervalEXT");
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'double cvGetPropWindowAutoSize_W32(constchar*)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:828:5: note: in expansion of macro 'CV_FUNCNAME'
    828 | CV_FUNCNAME("cvSetCloseCallback");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'double cvGetRatioWindow_W32(const char*)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:848:5: note: in expansion of macro 'CV_FUNCNAME'
    848 | CV_FUNCNAME("cvGetRatioWindow_W32");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'double cvGetOpenGlProp_W32(const char*)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:869:5: note: in expansion of macro 'CV_FUNCNAME'
    869 | CV_FUNCNAME("cvGetOpenGlProp_W32");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'double cvGetPropVisible_W32(const char*)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:892:5: note: in expansion of macro 'CV_FUNCNAME'
    892 | CV_FUNCNAME("cvGetPropVisible_W32");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void {anonymous}::createGlContext(HWND, HDC__*&, HGLRC__*&, bool&)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:914:9: note: in expansion of macro 'CV_FUNCNAME'
    914 | CV_FUNCNAME("createGlContext");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void {anonymous}::drawGl(CvWindow&)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:988:9: note: in expansion of macro 'CV_FUNCNAME'
    988 | CV_FUNCNAME("drawGl");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void {anonymous}::resizeGl(CvWindow&)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1006:9: note: in expansion of macro 'CV_FUNCNAME'
    1006 | CV_FUNCNAME("resizeGl");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'int cvNamedWindow(const char*, int)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1023:5: note: in expansion of macro 'CV_FUNCNAME'
    1023 | CV_FUNCNAME("cvNamedWindow");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void cvSetOpenGlContext(const char*)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1141:5: note: in expansion of macro 'CV_FUNCNAME'
    1141 | CV_FUNCNAME("cvSetOpenGlContext");
    | ^~~~~~~~~~~
    [ 42%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/objdetect/src/barcode_decoder/upcean_decoder.cpp.obj
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void cvUpdateWindow(const char*)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1161:5: note: in expansion of macro 'CV_FUNCNAME'
    1161 | CV_FUNCNAME("cvUpdateWindow");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void cvSetOpenGlDrawCallback(const char*, CvOpenGlDrawCallback, void*)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1177:5: note: in expansion of macro 'CV_FUNCNAME'
    1177 | CV_FUNCNAME("cvCreateOpenGLCallback");
    | ^~~~~~~~~~~
    [ 42%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/objdetect/src/barcode_detector/bardetect.cpp.obj
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void cvDestroyWindow(const char*)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1252:5: note: in expansion of macro 'CV_FUNCNAME'
    1252 | CV_FUNCNAME("cvDestroyWindow");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'RECT icvCalcWindowRect(CvWindow&)':
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1287:22: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1287 | RECT crect = { 0 }, trect = { 0 }, rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1287:22: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1287:22: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1287:37: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1287 | RECT crect = { 0 }, trect = { 0 }, rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1287:37: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1287:37: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1287:51: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1287 | RECT crect = { 0 }, trect = { 0 }, rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1287:51: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1287:51: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void icvUpdateWindowPos(CvWindow&)':
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1339:21: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1339 | RECT rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1339:21: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1339:21: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1351:28: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1351 | RECT rmw = { 0 }, rw = icvCalcWindowRect(&window);
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1351:28: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1351:28: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void cvShowImage(const char*, const CvArr*)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1374:5: note: in expansion of macro 'CV_FUNCNAME'
    1374 | CV_FUNCNAME("cvShowImage");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void cvResizeWindow(const char*, int, int)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1464:5: note: in expansion of macro 'CV_FUNCNAME'
    1464 | CV_FUNCNAME("cvResizeWindow");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void resizeWindow_(CvWindow&, const cv::Size&)':
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1480:20: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1480 | RECT rmw = { 0 }, rw = { 0 }, rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1480:20: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1480:20: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1480:32: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1480 | RECT rmw = { 0 }, rw = { 0 }, rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1480:32: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1480:32: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1480:46: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1480 | RECT rmw = { 0 }, rw = { 0 }, rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1480:46: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1480:46: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void cvMoveWindow(const char*, int, int)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1506:5: note: in expansion of macro 'CV_FUNCNAME'
    1506 | CV_FUNCNAME("cvMoveWindow");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void moveWindow_(CvWindow&, const cv::Point&)':
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1522:21: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1522 | RECT rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1522:21: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1522:21: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'LRESULT MainWindowProc(HWND, UINT, WPARAM, LPARAM)':
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1554:29: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1554 | RECT rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1554:29: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1554:29: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1577:33: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1577 | RECT rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1577:33: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1577:33: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1593:27: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1593 | RECT rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1593:27: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1593:27: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1644:27: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1644 | RECT rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1644:27: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1644:27: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1671:27: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1671 | RECT cr = { 0 }, tr = { 0 }, wrc = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1671:27: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1671:27: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1671:39: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1671 | RECT cr = { 0 }, tr = { 0 }, wrc = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1671:39: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1671:39: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1671:52: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1671 | RECT cr = { 0 }, tr = { 0 }, wrc = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1671:52: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1671:52: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'LRESULT HighGUIProc(HWND, UINT, WPARAM, LPARAM)':
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1789:22: warning: left operand of comma operator has no effect [-Wunused-value]
    1789 | } while (0,0); // (0,0) instead of (0) to avoid MSVC compiler warning C4127: "conditional expression is constant"
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1856:33: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1856 | RECT rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1856:33: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1856:33: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1917:33: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    1917 | RECT rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1917:33: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1917:33: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'LRESULT HGToolbarProc(HWND, UINT, WPARAM, LPARAM)':
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:2077:33: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    2077 | RECT rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:2077:33: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:2077:33: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'int icvCreateTrackbar(const char*, constchar*, int*, int, CvTrackbarCallback, CvTrackbarCallback2, void*)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:2355:5: note: in expansion of macro 'CV_FUNCNAME'
    2355 | CV_FUNCNAME("icvCreateTrackbar");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'std::shared_ptr<CvTrackbar> createTrackbar_(CvWindow&, const std::string&, int, cv::TrackbarCallback, void*)':
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:2460:21: warning: missing initializer for member 'tagRECT::top' [-Wmissing-field-initializers]
    2460 | RECT rect = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:2460:21: warning: missing initializer for member 'tagRECT::right' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:2460:21: warning: missing initializer for member 'tagRECT::bottom' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void cvSetMouseCallback(const char*, CvMouseCallback, void*)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:2543:5: note: in expansion of macro 'CV_FUNCNAME'
    2543 | CV_FUNCNAME("cvSetMouseCallback");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'int cvGetTrackbarPos(const char*, const char*)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:2561:5: note: in expansion of macro 'CV_FUNCNAME'
    2561 | CV_FUNCNAME("cvGetTrackbarPos");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void cvSetTrackbarPos(const char*, constchar*, int)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:2582:5: note: in expansion of macro 'CV_FUNCNAME'
    2582 | CV_FUNCNAME("cvSetTrackbarPos");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void cvSetTrackbarMax(const char*, constchar*, int)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:2612:5: note: in expansion of macro 'CV_FUNCNAME'
    2612 | CV_FUNCNAME("cvSetTrackbarMax");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void cvSetTrackbarMin(const char*, constchar*, int)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:2641:5: note: in expansion of macro 'CV_FUNCNAME'
    2641 | CV_FUNCNAME("cvSetTrackbarMin");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'void* cvGetWindowHandle(const char*)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:2670:5: note: in expansion of macro 'CV_FUNCNAME'
    2670 | CV_FUNCNAME("cvGetWindowHandle");
    | ^~~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'const char* cvGetWindowName(void*)':
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/core_c.h:2674:13: warning: unused variable 'cvFuncName'[-Wunused-variable]
    2674 | static char cvFuncName[] = Name
    | ^~~~~~~~~~
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:2687:5: note: in expansion of macro 'CV_FUNCNAME'
    2687 | CV_FUNCNAME("cvGetWindowName");
    | ^~~~~~~~~~~
    [ 42%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/objdetect/src/cascadedetect.cpp.obj
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp: In function 'LRESULT MainWindowProc(HWND, UINT, WPARAM, LPARAM)':
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1616:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
    1616 | }
    | ^
    D:\temp\opencv\sources\opencv\modules\highgui\src\window_w32.cpp:1618:5: note: here
    1618 | case WM_ACTIVATE:
    | ^~~~
    [ 42%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/objdetect/src/cascadedetect_convert.cpp.obj
    [ 42%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/objdetect/src/detection_based_tracker.cpp.obj
    [ 42%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/objdetect/src/face_detect.cpp.obj
    ......
    [ 48%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/gapi/src/backends/ie/giebackend/giewrapper.cpp.obj
    [ 48%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/gapi/src/backends/ov/govbackend.cpp.obj
    [ 48%] ←[32mBuilding CXX object modules/world/CMakeFiles/opencv_world.dir/__/gapi/src/backends/onnx/gonnxbackend.cpp.obD:\temp\opencv\sources\opencv\modules\gapi\src\backends\ocl\goclcore.cpp:19: warning: ignoring '#pragma comment ' [-Wunknown-pragmas]
    19 | #pragma comment(lib,"d3d11.lib")
    D:\temp\opencv\sources\opencv\modules\gapi\src\backends\ocl\goclcore.cpp:23:9: warning: 'NOMINMAX' redefined
    23 | #define NOMINMAX
    | ^~~~~~~~
    In file included from D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/x86_64-w64-mingw32/bits/c++config.h:727,
    from D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/limits:49,
    from D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/cvdef.h:185,
    from D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core.hpp:52,
    from D:/temp/opencv/sources/opencv/modules/gapi/src/precomp.hpp:12,
    from D:\temp\opencv\sources\opencv\modules\gapi\src\backends\ocl\goclcore.cpp:8:
    D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/x86_64-w64-mingw32/bits/os_defines.h:45:9: note: this is the location of the previous definition
    45 | #define NOMINMAX 1
    | ^~~~~~~~
    [ 48%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/gapi/src/backends/onnx/dml_ep.cpp.obj
    [ 48%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/gapi/src/backends/render/grenderocv.cpp.obj
    [ 48%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/gapi/src/backends/onnx/coreml_ep.cpp.obj
    ......
    [ 48%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/gapi/src/backends/common/serialization.cpp.obj
    [ 48%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/gapi/src/backends/streaming/gstreamingbackend.cpp.obj
    [ 48%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/gapi/src/backends/ie/bindings_ie.cpp.obj
    D:\temp\opencv\sources\opencv\modules\gapi\src\backends\common\serialization.cpp:12:9: warning: 'NOMINMAX' redefined
    12 | #define NOMINMAX
    | ^~~~~~~~
    In file included from D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/x86_64-w64-mingw32/bits/c++config.h:727,
    from D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/bits/requires_hosted.h:31,
    from D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/set:62,
    from D:\temp\opencv\sources\opencv\modules\gapi\src\backends\common\serialization.cpp:7:
    D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/x86_64-w64-mingw32/bits/os_defines.h:45:9: note: this is the location of the previous definition
    45 | #define NOMINMAX 1
    | ^~~~~~~~
    [ 48%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/gapi/src/backends/onnx/bindings_onnx.cpp.obj
    [ 49%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/gapi/src/backends/ov/bindings_ov.cpp.obj
    [ 49%] Building CXX object modules/world/CMakeFiles/opencv_world.dir/__/gapi/src/backends/python/gpythonbackend.cpp.obj
    ......
    [ 52%] Building CXX object modules/world/CMakeFiles/example_gapi_semantic_segmentation.dir/__/gapi/samples/semantic_segmentation.cpp.obj
    [ 52%] Building CXX object modules/world/CMakeFiles/example_gapi_slides_blur_gapi.dir/__/gapi/samples/slides_blur_gapi.cpp.obj
    [ 52%] ←[32mBuilding CXX object modules/world/CMakeFiles/example_gapi_slides_sobel_cv.dir/__/gapi/samples/slides_sobel_[ 52%] Building CXX object modules/world/CMakeFiles/example_gapi_slides_sobel_gapi.dir/__/gapi/samples/slides_sobel_gapi.cpp.obj
    D:\temp\opencv\sources\opencv\modules\gapi\samples\pipeline_modeling_tool.cpp:13:9: warning: 'NOMINMAX' redefined
    13 | #define NOMINMAX
    | ^~~~~~~~
    In file included from D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/x86_64-w64-mingw32/bits/c++config.h:727,
    from D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/bits/requires_hosted.h:31,
    from D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/iostream:40,
    from D:\temp\opencv\sources\opencv\modules\gapi\samples\pipeline_modeling_tool.cpp:1:
    D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/x86_64-w64-mingw32/bits/os_defines.h:45:9: note: this is the location of the previous definition
    45 | #define NOMINMAX 1
    | ^~~~~~~~
    D:\temp\opencv\sources\opencv\modules\gapi\samples\onevpl_infer_with_advanced_device_selection.cpp:26:9: warning: 'NOMINMAX' redefined
    26 | #define NOMINMAX
    | ^~~~~~~~
    In file included from D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/x86_64-w64-mingw32/bits/c++config.h:727,
    from D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/bits/stl_algobase.h:59,
    from D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/algorithm:62,
    from D:\temp\opencv\sources\opencv\modules\gapi\samples\onevpl_infer_with_advanced_device_selection.cpp:1:
    D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/x86_64-w64-mingw32/bits/os_defines.h:45:9: note: this is the location of the previous definition
    45 | #define NOMINMAX 1
    | ^~~~~~~~
    [ 52%] Linking CXX executable ..\..\bin\example_gapi_slides_sobel_gapi.exe
    [ 52%] Linking CXX executable ..\..\bin\example_gapi_slides_sobel_cv.exe
    [ 52%] Linking CXX executable ..\..\bin\example_gapi_draw_example.exe
    ......
    [ 61%] Building CXX object samples/cpp/CMakeFiles/example_tutorial_Drawing_1.dir/tutorial_code/ImgProc/basic_drawing/Drawing_1.cpp.obj
    [ 61%] Linking CXX executable ..\..\bin\example_tutorial_calcHist_Demo.exe
    [ 61%] ←[32mBuilding CXX object samples/cpp/CMakeFiles/example_tutorial_changing_contrast_brightness_image.dir/tutorialD:\temp\opencv\sources\opencv\samples\cpp\tutorial_code\ImgProc\BasicLinearTransforms.cpp: In function 'int main(int, char**)':
    D:\temp\opencv\sources\opencv\samples\cpp\tutorial_code\ImgProc\BasicLinearTransforms.cpp:58:45: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
    58 | new_image.at<Vec3b>(y,x)[c] =
    In file included from D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core.hpp:56,
    from D:/temp/opencv/sources/opencv/modules/imgcodecs/include/opencv2/imgcodecs.hpp:46,
    from D:\temp\opencv\sources\opencv\samples\cpp\tutorial_code\ImgProc\BasicLinearTransforms.cpp:7:
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/matx.hpp:218:9: note: at offset 3 into destination object 'cv::Matx<unsigned char, 3, 1>::val' of size 3
    218 | _Tp val[m*n]; ///< matrix elements
    | ^~~
    D:\temp\opencv\sources\opencv\samples\cpp\tutorial_code\ImgProc\BasicLinearTransforms.cpp:58:45: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
    58 | new_image.at<Vec3b>(y,x)[c] =
    D:/temp/opencv/sources/opencv/modules/core/include/opencv2/core/matx.hpp:218:9: note: at offset 3 into destination object 'cv::Matx<unsigned char, 3, 1>::val' of size 3
    218 | _Tp val[m*n]; ///< matrix elements
    | ^~~
    [ 61%] Linking CXX executable ..\..\bin\example_tutorial_compareHist_Demo.exe
    [ 61%] Linking CXX executable ..\..\bin\example_cpp_flann_search_dataset.exe
    [ 61%] Built target example_tutorial_EqualizeHist_Demo
    ......
    [ 74%] Building CXX object modules/world/CMakeFiles/opencv_perf_core.dir/__/core/perf/opencl/perf_dxt.cpp.obj
    [ 74%] Built target example_tapi_video_acceleration
    [ 74%] Building CXX object modules/world/CMakeFiles/opencv_test_core.dir/__/core/test/ocl/test_matrix_operation.cpp.obj
    In file included from D:/Dev/MingGW/x86_64-w64-mingw32/include/windows.h:72,
    from D:\temp\opencv\sources\opencv\samples\directx\d3d9_interop.cpp:9:
    D:\temp\opencv\sources\opencv\samples\directx\winapp.hpp: In member function 'virtual int WinApp::create()':
    D:\temp\opencv\sources\opencv\samples\directx\winapp.hpp:53:22: warning: cast to pointer from integer of different size[-Wint-to-pointer-cast]
    53 | (LPCTSTR)wc, m_window_name.c_str(),
    | ^~~~~~~~~~~
    In file included from D:\temp\opencv\sources\opencv\samples\directx\d3d9_interop.cpp:18:
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp: At global scope:
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp:44:17: warning: 'virtual int D3DSample::create()' can be marked override [-Wsuggest-override]
    44 | virtual int create() { return WinApp::create(); }
    | ^~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp:46:17: warning: 'virtual int D3DSample::cleanup()' can be marked override [-Wsuggest-override]
    46 | virtual int cleanup()
    | ^~~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp:53:30: warning: 'virtual LRESULT D3DSample::WndProc(HWND, UINT, WPARAM, LPARAM)' can be marked override [-Wsuggest-override]
    53 | virtual LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    | ^~~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp:96:17: warning: 'virtual int D3DSample::idle()' can be marked override [-Wsuggest-override]
    96 | virtual int idle() { return render(); }
    | ^~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d9_interop.cpp:30:9: warning: 'virtual int D3D9WinApp::create()' can bemarked override [-Wsuggest-override]
    30 | int create(void)
    | ^~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d9_interop.cpp:134:9: warning: 'virtual int D3D9WinApp::render()' can be marked override [-Wsuggest-override]
    134 | int render()
    | ^~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d9_interop.cpp:287:9: warning: 'virtual int D3D9WinApp::cleanup()' can be marked override [-Wsuggest-override]
    287 | int cleanup(void)
    | ^~~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d9_interop.cpp: In member function 'virtual int D3D9WinApp::render()':
    D:\temp\opencv\sources\opencv\samples\directx\d3d9_interop.cpp:156:20: warning: enumeration value 'MODE_GPU_NV12' not handled in switch [-Wswitch]
    156 | switch (mode)
    | ^
    In file included from D:/Dev/MingGW/x86_64-w64-mingw32/include/windows.h:72,
    from D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:9:
    D:\temp\opencv\sources\opencv\samples\directx\winapp.hpp: In member function 'virtual int WinApp::create()':
    D:\temp\opencv\sources\opencv\samples\directx\winapp.hpp:53:22: warning: cast to pointer from integer of different size[-Wint-to-pointer-cast]
    53 | (LPCTSTR)wc, m_window_name.c_str(),
    | ^~~~~~~~~~~
    In file included from D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:18:
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp: At global scope:
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp:44:17: warning: 'virtual int D3DSample::create()' can be marked override [-Wsuggest-override]
    44 | virtual int create() { return WinApp::create(); }
    | ^~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp:46:17: warning: 'virtual int D3DSample::cleanup()' can be marked override [-Wsuggest-override]
    46 | virtual int cleanup()
    | ^~~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp:53:30: warning: 'virtual LRESULT D3DSample::WndProc(HWND, UINT, WPARAM, LPARAM)' can be marked override [-Wsuggest-override]
    53 | virtual LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    | ^~~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp:96:17: warning: 'virtual int D3DSample::idle()' can be marked override [-Wsuggest-override]
    96 | virtual int idle() { return render(); }
    | ^~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:30:9: warning: 'virtual int D3D10WinApp::create()' can be marked override [-Wsuggest-override]
    30 | int create(void)
    | ^~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:156:9: warning: 'virtual int D3D10WinApp::render()' canbe marked override [-Wsuggest-override]
    156 | int render()
    | ^~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:272:9: warning: 'virtual int D3D10WinApp::cleanup()' can be marked override [-Wsuggest-override]
    272 | int cleanup(void)
    | ^~~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp: In member function 'virtual int D3D10WinApp::create()':
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:91:41: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::Height' [-Wmissing-field-initializers]
    91 | D3D10_TEXTURE2D_DESC desc = { 0 };
    | ^
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:91:41: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::MipLevels' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:91:41: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::ArraySize' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:91:41: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::Format' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:91:41: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::SampleDesc' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:91:41: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::Usage' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:91:41: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::BindFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:91:41: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::CPUAccessFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:91:41: warning: missing initializer for member 'D3D10_TEXTURE2D_DESC::MiscFlags' [-Wmissing-field-initializers]
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp: In member function 'virtual int D3D10WinApp::render()':
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:178:20: warning: enumeration value 'MODE_GPU_NV12' not handled in switch [-Wswitch]
    178 | switch (mode)
    | ^
    [ 74%] Building CXX object modules/world/CMakeFiles/opencv_test_imgproc.dir/__/imgproc/test/ocl/test_blend.cpp.obj
    In file included from D:/Dev/MingGW/x86_64-w64-mingw32/include/windows.h:72,
    from D:\temp\opencv\sources\opencv\samples\directx\d3d11_interop.cpp:9:
    D:\temp\opencv\sources\opencv\samples\directx\winapp.hpp: In member function 'virtual int WinApp::create()':
    D:\temp\opencv\sources\opencv\samples\directx\winapp.hpp:53:22: warning: cast to pointer from integer of different size[-Wint-to-pointer-cast]
    53 | (LPCTSTR)wc, m_window_name.c_str(),
    | ^~~~~~~~~~~
    In file included from D:\temp\opencv\sources\opencv\samples\directx\d3d11_interop.cpp:18:
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp: At global scope:
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp:44:17: warning: 'virtual int D3DSample::create()' can be marked override [-Wsuggest-override]
    44 | virtual int create() { return WinApp::create(); }
    | ^~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp:46:17: warning: 'virtual int D3DSample::cleanup()' can be marked override [-Wsuggest-override]
    46 | virtual int cleanup()
    | ^~~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp:53:30: warning: 'virtual LRESULT D3DSample::WndProc(HWND, UINT, WPARAM, LPARAM)' can be marked override [-Wsuggest-override]
    53 | virtual LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    | ^~~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp:96:17: warning: 'virtual int D3DSample::idle()' can be marked override [-Wsuggest-override]
    96 | virtual int idle() { return render(); }
    | ^~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d11_interop.cpp:32:9: warning: 'virtual int D3D11WinApp::create()' can be marked override [-Wsuggest-override]
    32 | int create(void)
    | ^~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d11_interop.cpp:232:9: warning: 'virtual int D3D11WinApp::render()' canbe marked override [-Wsuggest-override]
    232 | int render()
    | ^~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d11_interop.cpp:398:9: warning: 'virtual int D3D11WinApp::cleanup()' can be marked override [-Wsuggest-override]
    398 | int cleanup(void)
    | ^~~~~~~
    In file included from D:/Dev/MingGW/x86_64-w64-mingw32/include/windows.h:72,
    from D:\temp\opencv\sources\opencv\samples\directx\d3d9ex_interop.cpp:9:
    D:\temp\opencv\sources\opencv\samples\directx\winapp.hpp: In member function 'virtual int WinApp::create()':
    D:\temp\opencv\sources\opencv\samples\directx\winapp.hpp:53:22: warning: cast to pointer from integer of different size[-Wint-to-pointer-cast]
    53 | (LPCTSTR)wc, m_window_name.c_str(),
    | ^~~~~~~~~~~
    In file included from D:\temp\opencv\sources\opencv\samples\directx\d3d9ex_interop.cpp:18:
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp: At global scope:
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp:44:17: warning: 'virtual int D3DSample::create()' can be marked override [-Wsuggest-override]
    44 | virtual int create() { return WinApp::create(); }
    | ^~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp:46:17: warning: 'virtual int D3DSample::cleanup()' can be marked override [-Wsuggest-override]
    46 | virtual int cleanup()
    | ^~~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp:53:30: warning: 'virtual LRESULT D3DSample::WndProc(HWND, UINT, WPARAM, LPARAM)' can be marked override [-Wsuggest-override]
    53 | virtual LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    | ^~~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3dsample.hpp:96:17: warning: 'virtual int D3DSample::idle()' can be marked override [-Wsuggest-override]
    96 | virtual int idle() { return render(); }
    | ^~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d9ex_interop.cpp:30:9: warning: 'virtual int D3D9ExWinApp::create()' can be marked override [-Wsuggest-override]
    30 | int create(void)
    | ^~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d9ex_interop.cpp:134:9: warning: 'virtual int D3D9ExWinApp::render()' can be marked override [-Wsuggest-override]
    134 | int render()
    | ^~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d9ex_interop.cpp:288:9: warning: 'virtual int D3D9ExWinApp::cleanup()' can be marked override [-Wsuggest-override]
    288 | int cleanup(void)
    | ^~~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d9ex_interop.cpp: In member function 'virtual int D3D9ExWinApp::render(':
    D:\temp\opencv\sources\opencv\samples\directx\d3d9ex_interop.cpp:156:20: warning: enumeration value 'MODE_GPU_NV12' nothandled in switch [-Wswitch]
    156 | switch (mode)
    | ^
    D:\temp\opencv\sources\opencv\samples\directx\d3d9_interop.cpp:164:43: warning: 'pSurface' may be used uninitialized [-Wmaybe-uninitialized]
    164 | r = pSurface->LockRect(&memDesc, &rc, 0);
    | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d9_interop.cpp:145:32: note: 'pSurface' was declared here
    145 | LPDIRECT3DSURFACE9 pSurface;
    | ^~~~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:186:38: warning: 'pSurface' may be used uninitialized [-Wmaybe-uninitialized]
    186 | r = pSurface->Map(subResource, D3D10_MAP_WRITE_DISCARD, 0, &mappedTex);
    | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d10_interop.cpp:167:30: note: 'pSurface' was declared here
    167 | ID3D10Texture2D* pSurface;
    | ^~~~~~~~
    [ 74%] Linking CXX executable ..\..\bin\example_opengl_opengl.exe
    D:\temp\opencv\sources\opencv\samples\directx\d3d9ex_interop.cpp:164:43: warning: 'pSurface' may be used uninitialized -Wmaybe-uninitialized]
    164 | r = pSurface->LockRect(&memDesc, &rc, 0);
    | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
    D:\temp\opencv\sources\opencv\samples\directx\d3d9ex_interop.cpp:145:32: note: 'pSurface' was declared here
    145 | LPDIRECT3DSURFACE9 pSurface;
    | ^~~~~~~~
    [ 74%] Linking CXX executable ..\..\bin\example_directx_d3d9_interop.exe
    [ 74%] Linking CXX executable ..\..\bin\example_directx_d3d10_interop.exe
    [ 74%] Linking CXX executable ..\..\bin\example_directx_d3d9ex_interop.exe
    ......
    [100%] Building CXX object modules/world/CMakeFiles/opencv_test_gapi.dir/__/gapi/test/streaming/gapi_streaming_vpl_data_provider.cpp.obj
    [100%] Building CXX object modules/world/CMakeFiles/opencv_test_gapi.dir/__/gapi/test/streaming/gapi_streaming_vpl_device_selector.cpp.obj
    [100%] Building CXX object modules/world/CMakeFiles/opencv_test_gapi.dir/__/gapi/test/streaming/gapi_streaming_vpp_preproc_test.cpp.obj
    D:\temp\opencv\sources\opencv\modules\gapi\test\streaming\gapi_streaming_vpl_device_selector.cpp:19: warning: ignoring #pragma comment ' [-Wunknown-pragmas]
    19 | #pragma comment(lib,"d3d11.lib")
    D:\temp\opencv\sources\opencv\modules\gapi\test\streaming\gapi_streaming_vpl_device_selector.cpp:23:9: warning: 'NOMINMAX' redefined
    23 | #define NOMINMAX
    | ^~~~~~~~
    In file included from D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/x86_64-w64-mingw32/bits/c++config.h:727,
    from D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/cstdint:40,
    from D:/temp/opencv/sources/opencv/modules/gapi/test/test_precomp.hpp:13,
    from D:\temp\opencv\sources\opencv\modules\gapi\test\streaming\gapi_streaming_vpl_device_selector.cpp::
    D:/Dev/MingGW/lib/gcc/x86_64-w64-mingw32/15.2.0/include/c++/x86_64-w64-mingw32/bits/os_defines.h:45:9: note: this is the location of the previous definition
    45 | #define NOMINMAX 1
    | ^~~~~~~~
    [100%] Building CXX object modules/world/CMakeFiles/opencv_test_gapi.dir/__/gapi/test/test_main.cpp.obj
    [100%] Building CXX object modules/world/CMakeFiles/opencv_test_gapi.dir/__/gapi/test/util/any_tests.cpp.obj
    [100%] Building CXX object modules/world/CMakeFiles/opencv_test_gapi.dir/__/gapi/test/util/optional_tests.cpp.obj
    ......
    [100%] Built target opencv_test_core
    [100%] Linking CXX executable ..\..\bin\opencv_test_gapi.exe
    [100%] Built target opencv_test_gapi

    D:\temp\opencv\build>
  2. 编译完毕后使用mingw32-make install获得编译好的文件。输出如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    D:\temp\opencv\build>mingw32-make install
    [ 0%] Built target opencv_dnn_plugins
    [ 0%] Built target opencv_highgui_plugins
    [ 1%] Built target jpeg12-static
    ......
    [100%] Built target example_directx_d3d9_interop
    [100%] Built target example_directx_d3d9ex_interop
    [100%] Built target example_opengl_opengl
    Install the project...
    -- Install configuration: "Release"
    -- Installing: D:/temp/opencv/build/install/etc/licenses/dlpack-LICENSE
    -- Installing: D:/temp/opencv/build/install/etc/licenses/flatbuffers-LICENSE.txt
    ......
    -- Installing: D:/temp/opencv/build/install/x64/mingw/samples/directx/example_directx_d3d9_interop.exe
    -- Installing: D:/temp/opencv/build/install/x64/mingw/samples/directx/example_directx_d3d9ex_interop.exe
    -- Installing: D:/temp/opencv/build/install/x64/mingw/samples/opengl/example_opengl_opengl.exe

    D:\temp\opencv\build>

    现在你应该就能在编译输出文件夹中的install文件夹内找到编译好的dll等文件了。(我的是D:\temp\opencv\build\install

  • 标题: 【资源】OpenCV-MinGW编译资源及手动编译方法
  • 作者: Denvo
  • 创建于 : 2025-10-18 12:46:43
  • 更新于 : 2026-01-25 17:29:40
  • 链接: https://www.denvoshome.xyz/posts/opencvBuild/
  • 版权声明: 本文章采用 CC BY-SA 4.0 进行许可。
评论
目录
【资源】OpenCV-MinGW编译资源及手动编译方法