Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Compiling OpenEXR for Windows7 64 using visual-studio 2010 fails

I am having trouble building OpenEXR for windows 7 using CMake.

I am following directions described here

The cmd output after I run the cmake command is as follows:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

D:\openexr-2.2.0>setlocal

D:\openexr-2.2.0>cmake -DZLIB_ROOT="C:\Program Files\zlib" -DILMBASE_PACKAGE_PREFIX="d:\ilmbase-2.2.0\builds" -DCMAKE_INSTALL_PREFIX="d:\openexr-2.2.0" -G "Visual Studio 10 Win64" ..\openexr-2.2.0
-- The C compiler identification is MSVC 16.0.40219.1
-- The CXX compiler identification is MSVC 16.0.40219.1
-- Check for working C compiler using: Visual Studio 10 Win64
-- Check for working C compiler using: Visual Studio 10 Win64 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Visual Studio 10 Win64
-- Check for working CXX compiler using: Visual Studio 10 Win64 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found ZLIB: C:/Program Files/zlib/lib/zlib.lib (found version "1.2.8")
ILMBASE_PACKAGE_PREFIX = d:\ilmbase-2.2.0\builds
-- Performing Test HAVE_GCC_INLINE_ASM_AVX
-- Performing Test HAVE_GCC_INLINE_ASM_AVX - Failed
-- Performing Test HAVE_SYSCONF_NPROCESSORS_ONLN
-- Performing Test HAVE_SYSCONF_NPROCESSORS_ONLN - Failed
-- Configuring done
-- Generating done
-- Build files have been written to: D:/openexr-2.2.0

D:\openexr-2.2.0>

This generates the solution with many projects, however, attempting to build project ALL_BUILDS fails.

I noticed all non-compiling projects (except for porject ilmimf) complain about

error LNK1181: cannot open input file '..\IlmImf\Release\IlmImf-2_2.lib'

Trying to build project IlmImf independently reports:

error MSB6006: "cmd.exe" exited with code -1073741515.

here is the full output for project ilmimf:

1>------ Build started: Project: ZERO_CHECK, Configuration: Release x64 ------
1>Build started 06/11/2014 09:43:21.
1>InitializeBuildStatus:
1>  Creating "x64\Release\ZERO_CHECK\ZERO_CHECK.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>FinalizeBuildStatus:
1>  Deleting file "x64\Release\ZERO_CHECK\ZERO_CHECK.unsuccessfulbuild".
1>  Touching "x64\Release\ZERO_CHECK\ZERO_CHECK.lastbuildstate".
1>
1>Build succeeded.
1>
1>Time Elapsed 00:00:00.04
2>------ Build started: Project: IlmImf, Configuration: Release x64 ------
2>Build started 06/11/2014 09:43:21.
2>InitializeBuildStatus:
2>  Touching "IlmImf.dir\Release\IlmImf.unsuccessfulbuild".
2>CustomBuild:
2>  Building Custom Rule D:/openexr-2.2.0/IlmImf/CMakeLists.txt
2>  CMake does not need to re-run because D:\openexr-2.2.0\IlmImf\CMakeFiles\generate.stamp is up-to-date.
2>  Generating b44ExpLogTable.h
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(151,5): error MSB6006: "cmd.exe" exited with code -1073741515.
2>
2>Build FAILED.
2>
2>Time Elapsed 00:00:00.14
========== Build: 1 succeeded, 1 failed, 2 up-to-date, 0 skipped ==========

Note, I am running cmd and Visual Studio 2010 in administrator mode, tried compiling all configurations (debug, release, MinSizeRel, RelWithDebInfo) but nothing worked so far.

like image 706
has981 Avatar asked Nov 06 '14 08:11

has981


3 Answers

When the IlmImf is builded, it will generator a "b44ExpLogTable.exe" program to generator a header file. This program b44ExpLogTable.exe needs correct dlls to run. Thus, we need to copy these related dlls into the directory or the system directory.

like image 72
James Wu Avatar answered Nov 13 '22 20:11

James Wu


Error   LNK1104 cannot open file '..\IlmImf\Debug\IlmImf-2_2.lib'   
Error   LNK1104 cannot open file '..\IlmImfUtil\Debug\IlmImfUtil-2_2.lib'

I had the same problems and I just copied Half.dll, Iex-2_2.dll and IlmThread-2_2.dll (three dll files generated by ilmbase) to b44ExpLogTable.exe folder. Then I built openexr successfully.

like image 37
Jiajun XIONG Avatar answered Nov 13 '22 21:11

Jiajun XIONG


I had the exact same problem, though compiling for win32. It needs dlls in lib directory created after building ilmbase. So my solution was to add that folder to windows' system path and everything works perfectly fine.

like image 11
RoozyGPLFX Avatar answered Nov 13 '22 20:11

RoozyGPLFX