首先我是参考了这篇博客进行OpenEXR的配置:
OpenEXR-2.2.0在Win7 x64系统下的安装方法:https://www.cnblogs.com/hksac/p/4978838.html
前面基本都没有什么问题,直到最后用vs编译OpenEXR的时候,总会出现以下两条错误:
Error LNK1104 cannot open file '..\IlmImf\Debug\IlmImf-2_2.lib'
Error LNK1104 cannot open file '..\IlmImfUtil\Debug\IlmImfUtil-2_2.lib'
查阅了很多资料,大部分都说是dll文件的问题,不过不管是把lib文件夹中的dll文件放入系统文件夹或目标文件夹,还是添加环境变量,或者直接去载相应dll和lib文件等等都不行,上述问题依然存在。
之后在这篇帖子中,有人回答是zlib的问题,将zlib改为Win64位的就可以解决。
而之所以造成这一问题,是因为我使用的Visual Studio是2019版,在使用这一版进行工程文件的生成时无法直接使用指令-G "Visual Studio 16 2019 Win64",会报错。于是我没有进行选择,直接采用指令-G "Visual Studio 16 2019"进行生成了,很显然默认情况下系统选择的并不是64位。其实在系统在错误提示中其实也提到了正确的调用方法:
CMake Error: Could not create named generator Visual Studio 16 2019 Win64
Generators
* Visual Studio 16 2019 = Generates Visual Studio 2019 project files.
Use -A option to specify architecture.
Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
Optional [arch] can be "Win64" or "ARM".
Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
Optional [arch] can be "Win64" or "ARM".
因此将原命令改为 -G "Visual Studio 16 2019" -A x64 就可以成功按64位进行工程文件的生成。
另外,在进行生成时会出现如下等一些失败的信息,不过这并不会影响后面的编译。
-- Performing Test HAVE_GCC_INLINE_ASM_AVX - Failed
-- Performing Test HAVE_SYSCONF_NPROCESSORS_ONLN - Failed