2025年6月

用到的工具版本号:cmake 3.18.0 vs2019社区版 16.11.21 opencv 4.12.0(按生成的world版本号应该是这个,但是不知道为什么官网release目录下没找到这个版本 ::(疑问) )

  1. 先在gitbash执行git clone https://github.com/opencv/opencv指令把源码扒下来
  2. 找到文件保存的位置(跟系统搜索栏进入cmd里的目录是同一个位置,我这里是C:\Users\1,1是我的用户名),打开cmake-gui,源码位置填opencv主目录,build目录指定一个另外的目录
  3. Add entry加入键名"DOPENCV_DOWNLOAD_MIRROR_ID",类型STRING,键值"gitcode"(这个换gitcode镜像源不确定有没有用,csdn的东西我不好评价)
  4. entry里面勾选BUILD_opencv_world,这个是导入vs项目lib库时用到的,相当于把其他所有opencv依赖库整合在一起了,导入时只填这个opencv_world版本号.lib库就可以了
  5. configure选择vs2019、x64,完了再generate,没成功多试几次
  6. 接着点open project会自动打开生成的vs2019解决方案,按自己需求vs配置选x64-release或者x64-debug啥的
  7. 先右键生成ALL_BUILD项目,再右键生成INSTALL项目,然后就会在build目录底下生成一个install文件夹
  8. 把install文件夹底下的include文件夹直接复制到自己项目主目录
  9. ./install/x64/vc16/lib下的opencv_world4120.lib复制到自己项目主目录的lib目录下
  10. ./install/x64/vc16/bin下的opencv_world4120.dll复制到自己项目x64/release和x64/debug目录下
  11. Vs2019右键项目属性c/c++→常规→附加包含目录,加上项目主目录下include的地址
  12. 链接器→常规→附加库目录,加上主目录下lib的地址
  13. 链接器→输入→附加依赖项,加上opencv_world4120.lib,再点确认或者应用即可完成opencv导入vs2019

配环境一生之敌 ::(酸爽)

2025-06-30:写完这篇文章后发现,虽然编译成功了,能够正常使用libtiff库,但是libtiff库默认不支持jpeg格式,所以如果需要libtiff能够解析jpeg格式文件,需要附带jpeg进行编译,这个我还没有完全实现。待填坑ing……

背景:Windows11、VS2019、已成功安装libtiff库但无法解析使用了JPEG压缩的tiff或者svs图像

使用libtiff库时报错:
xxx.tiff: JPEG compression support is not configured.

问题出现的原因是libtiff库本身不支持JPEG压缩,所以需要额外安装JPEG压缩第三方库

步骤:
1.首先是安装并解压 JPEG压缩包,点击界面上的 jpegsr9f.zip 链接就会自动下载zip包
2.打开vs2019的“Developer Command Prompt for VS 2019”工具(系统搜索能搜到)
3.cd到jpeg-9f这个目录
4.键入命令行 nmake /f makefile.vs setup-v16 ,当前目录下会自动生成一个jpeg.sln
5.用vs2019打开jpeg项目,配置改成release x64,右键项目生成
6.测试是否成功:vs2019打开jpeg-9f目录下的apps.sln,全部生成
7.还是用第二步的工具,在jpeg-9f/这个目录下,执行命令 nmake /f makefile.vs test-64
8.若出现下面这个结果则表示JPEG库编译成功

Microsoft (R) 程序维护实用工具 14.29.30147.0 版
版权所有 (C) Microsoft Corporation。  保留所有权利。

        IF EXIST .\Release\testout* del .\Release\testout*
        .\Release\x64\djpeg -dct int -ppm -outfile .\Release\testout.ppm testorig.jpg
        .\Release\x64\djpeg -dct int -gif -outfile .\Release\testout.gif testorig.jpg
        .\Release\x64\djpeg -dct int -bmp -colors 256 -outfile .\Release\testout.bmp testorig.jpg
        .\Release\x64\cjpeg -dct int -outfile .\Release\testout.jpg testimg.ppm
        .\Release\x64\djpeg -dct int -ppm -outfile .\Release\testoutp.ppm testprog.jpg
        .\Release\x64\cjpeg -dct int -progressive -opt -outfile .\Release\testoutp.jpg testimg.ppm
        .\Release\x64\jpegtran -outfile .\Release\testoutt.jpg testprog.jpg
        fc /b testimg.ppm .\Release\testout.ppm
正在比较文件 testimg.ppm 和 .\RELEASE\TESTOUT.PPM
FC: 找不到差异

        fc /b testimg.gif .\Release\testout.gif
正在比较文件 testimg.gif 和 .\RELEASE\TESTOUT.GIF
FC: 找不到差异

        fc /b testimg.bmp .\Release\testout.bmp
正在比较文件 testimg.bmp 和 .\RELEASE\TESTOUT.BMP
FC: 找不到差异

        fc /b testimg.jpg .\Release\testout.jpg
正在比较文件 testimg.jpg 和 .\RELEASE\TESTOUT.JPG
FC: 找不到差异

        fc /b testimg.ppm .\Release\testoutp.ppm
正在比较文件 testimg.ppm 和 .\RELEASE\TESTOUTP.PPM
FC: 找不到差异

        fc /b testimgp.jpg .\Release\testoutp.jpg
正在比较文件 testimgp.jpg 和 .\RELEASE\TESTOUTP.JPG
FC: 找不到差异

        fc /b testorig.jpg .\Release\testoutt.jpg
正在比较文件 testorig.jpg 和 .\RELEASE\TESTOUTT.JPG
FC: 找不到差异...

环境VS2019、Windows11、cmake-3.18.0-win64-x64、待安装libtiff版本是4.7.0
注意:高版本的cmake必然会报错,太低版本的又不支持vs2019,而cmake3.18.0刚刚好,既能支持vs2019也能编译出libtiff库4.7.0这个版本

cmake-gui 4.0.2报错:弹窗报错Error inconfiguration process,preject files may be invalid

具体的报错信息(balabala一堆反正就是版本有问题,libtiff库这里cmakelists.txt这个版本号都是最小3.9了,不太懂)
CMake Error at doc/CMakeLists.txt:27 (cmake_minimum_required):
Compatibility with CMake < 3.5 has been removed from CMake.

Update the VERSION argument value. Or, use the ... syntax
to tell CMake that the project requires at least but has been updated
to work with policies introduced by or earlier.

Or, add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to try configuring anyway.

步骤:
1.下载并解压各个版本libtiff下载地址
2.cmake3.18.0 gui打开,如下图所示去配置
mbkkywqj.png
3.点击configure再点击generate就把该要的全部输出到第二个目录底下了
4.直接把tiff文件夹底下的include和lib目录放到vs项目的主目录下

vs2019项目配置:
1.C/C++常规->附加包含目录加上$(ProjectDir)include
2.链接器->常规->附加库目录加上$(ProjectDir)lib
3.链接器->输入->附加依赖项加上tiff.lib和tiffxx.lib