如何在vs中导入libjpeg_如何通过VS编译dng sdk

How to build dng sdk with VS 2017

安装dng sdk和libjpeg

首先,我们需要去adobe官方网站上下载dng sdk的源码,链接如下:

解压出来以后,得到如下文件夹:

初始sdk解压后的目录

注意这个ReadMe.txt,这里面告诉我们,还需要去下载libjpeg库放到当前目录下:对于windows系统,步骤如下: 1. 下载libjpeg库,下载地址:http://www.ijg.org/files/jpegsr9b.zip解压并重命名为"libjpeg",然后把这个文件夹放置在上图显示的文件夹,也就是这个ReadMe.txt旁边。

进入libjpeg文件夹,把jconfig.vc这个文件重命名为jconfig.h。

结果如下:

添加libjpeg后的目录

如果你使用的是VS2013,这个时候你就不需要看第二步了,直接跳到第三步

安装xmp/zlib/expat

因为上一步下载的xmp文件夹里面的.lib是adobe使用VS2013预编译好的,我们使用VS2017的话会在链接阶段报错,提示当前MSVC不是1800版本,和xmp lib的MSVC版本不一致。所以我们需要自己下载和编译xmp sdk。我们继续按照ReadMe.txt的提示往下走:

解压到当前文件夹,如下:

解压xmp sdk后的目录

点进去,如图:

根据这个pdf文件的提示,我们还需要依赖:

明确需要cmake,expat,zlib

我们还需要安装cmake,下载expat/zlib的源码,并且放置在third-party目录下:

在expat和zlib目录下,都有一个readme.txt告诉你如何下载,如何正确放置.h .c文件,安装它的要求做即可;

zlib的步骤:解压以后,把所有的第一级目录下的.h .c文件全部复制到/third-party/zlib目录下

安装cmake,前往cmake 下载链接下载windows版本的安装包,在安装的时候勾选添加cmake到环境变量;

退出third-party目录,进入build目录,修改几个.bat文件,来确保cmake生成VS2017的工程文件,默认是VS2015。首先打开如下4个bat文件:

其实只要改2个bat就可以,往下看

修改如下,首先打开GenerateXMPToolkitSDK_win.bat,修改VS版本为2017:

32DLL

echo "Generating XMPSDKToolkit Dynamic Win32"

set VS_VERSION=2017

...

:32LIB

echo "Generating XMPSDKToolkit Static Win32"

set VS_VERSION=2017

...

:64DLL

echo "Generating XMPSDKToolkit Dynamic x64"

set VS_VERSION=2017

...

:64LIB

echo "Generating XMPSDKToolkit Static x64"

set VS_VERSION=2017

...

然后打开CMakeUtils.bat,修改如下:

编译

以上步骤完成以后,可以开始正式编译了

编译xmp sdk

进入如下目录,运行GenerateXMPToolkitSDK_win.bat

生成vc14文件,里面有VS 2017工程文件

工程文件就好了

双击用VS2017打开,然后设置生成静态调试lib,否则的话在链接dng sdk的时候会报链接错误:

大坑,千万要避开

编译:

生成的lib位置(注意要改成如下名字,在末尾加上Debug):

adobe的开发脑回路估计有问题

编译dng sdk

把lib和头文件复制到dng sdk目录下:

拷贝头文件

打开dng sdk工程文件:

做一些修改,解决win10 sdk头文件time.h冲突问题,以及使用c++ vector替代dng_std_vector,不使用xmp的adobe私有功能(我们自己编译的xmp sdk没有这部分代码)

我又要好好吐槽一下adobe,放出来的预编译版本多了个privete,源码版本呢没有

和win10 sdk time.h冲突

开始编译

编译validate dng应用程序

如果你到了这一部,恭喜,大功快告成了!

接下来做最后一部,编译一个dng sdk自带的例子测试是否正常:

再次吐槽adobe 开发脑回路,吃了没事改啥目标路径

为了方便debug,我建议更改一下exe输出位置,否则你点击debug运行,VS会报找不到exe;

接下来就可以愉快的编译了

测试dng

我们生成的dng_validate.exe在如下位置,我们在同一个目录下放置一个dng文件:

新买的荣耀20 pro,华为直男手机,出来的raw是没有压缩的

用命令行的方式运行,这里我使用的是Powershlell:

折腾一天终于成功了

如无问题,此时显示dng内部各个ifd entry的tag解析值,enjoy your dng application!

家境贫寒,buy me a cup of coffee

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值