Error compiling openexr

Issue #20 closed
David Morán created an issue

Hi,

I'm trying to complie Fractorium but I'm encountering multiple issues with the provided cmd scripts. I was able to "fix" most of them by compiling them by hand using different tricks, but I have no clue how to compile successfully OpenEXR.

My system: Windows 10 Pro N version 1803 Visual Studio Community 2017 version 15.8.1 CMake version 3.12.1 (please ask for additional information if needed)

Please, note that I have little to zero background working with Visual Studio, CMake or most of the tools used for this project. I've worked mostly with Java and little of C at university. But I really love Fractorium and want to try some stuff with it!

Here's the output after executing openexer.cmd from "Developer Command Prompt for VS 2017":

G:\Users\David\Documents\code\fractorium\fractorium>openexr.cmd

G:\Users\David\Documents\code\fractorium\fractorium>ECHO building OpenEXR
building OpenEXR

G:\Users\David\Documents\code\fractorium\fractorium>cd..

G:\Users\David\Documents\code\fractorium>if not exist ".\openexr"       mkdir openexr
"       mkdir" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.

G:\Users\David\Documents\code\fractorium>git clone git://github.com/meshula/openexr.git
Cloning into 'openexr'...
remote: Counting objects: 13897, done.
remote: Total 13897 (delta 0), reused 0 (delta 0), pack-reused 13897
Receiving objects: 100% (13897/13897), 46.43 MiB | 11.94 MiB/s, done.
Resolving deltas: 100% (9870/9870), done.

G:\Users\David\Documents\code\fractorium>cd openexr

G:\Users\David\Documents\code\fractorium\openexr>git pull
Already up-to-date.

G:\Users\David\Documents\code\fractorium\openexr>SET current=G:\Users\David\Documents\code\fractorium\openexr

G:\Users\David\Documents\code\fractorium\openexr>if not exist ".\output" mkdir .\output

G:\Users\David\Documents\code\fractorium\openexr>cd IlmBase

G:\Users\David\Documents\code\fractorium\openexr\IlmBase>cmake -G "Visual Studio 15 2017 Win64"      -DCMAKE_PREFIX_PATH="G:\Users\David\Documents\code\fractorium\openexr\output"      -DCMAKE_INSTALL_PREFIX="G:\Users\David\Documents\code\fractorium\openexr\output"      .\
-- The C compiler identification is MSVC 19.15.26726.0
-- The CXX compiler identification is MSVC 19.15.26726.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.15.26726/bin/Hostx86/x64/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at Half/CMakeLists.txt:97 (add_library):
  add_library cannot create ALIAS target "IlmBase::Half" because target
  "Half_static" does not already exist.


CMake Error at Iex/CMakeLists.txt:68 (add_library):
  add_library cannot create ALIAS target "IlmBase::Iex" because target
  "Iex_static" does not already exist.


CMake Error at IexMath/CMakeLists.txt:64 (add_library):
  add_library cannot create ALIAS target "IlmBase::IexMath" because target
  "IexMath_static" does not already exist.


CMake Error at Imath/CMakeLists.txt:97 (add_library):
  add_library cannot create ALIAS target "IlmBase::Imath" because target
  "Imath_static" does not already exist.


CMake Error at IlmThread/CMakeLists.txt:81 (add_library):
  add_library cannot create ALIAS target "IlmBase::IlmThread" because target
  "IlmThread_static" does not already exist.


-- Configuring incomplete, errors occurred!
See also "G:/Users/David/Documents/code/fractorium/openexr/IlmBase/CMakeFiles/CMakeOutput.log".

Attached CMakeOutput.log if needed (my system is in spanish, so some messages are in spanish, sorry for any inconvenience)

Comments (19)

  1. Matt Feemster repo owner

    Hi David, thanks for posting this report. A few points.

    1) Not sure if you are just building for fun, but if you just want to run the program, you can always download the installer for all three major operating systems at fractorium.com

    2) What you are seeing is part of the problem of depending on other, open source libraries. The script I wrote is intended to pull the source for each one, build the source, and copy the final outputs to a common location that fractorium can see, which it will then link to when you build it in Visual Studio.

    3) The problem is that if any of the authors of any of those libraries change their code structure, or how they build things, the entire process breaks, as you have seen.

    My guess is that the authors of OpenExr have changed how they do things, so my original script no longer works. I will admit I haven't pulled their source and built it in well over a year.

    So I will take a look at OpenExr and get back to you. But in the mean time, I am very curious what exactly doesn't work when building the other libraries.

    Can you please let me know which changes you specifically had to make to get everything else to build? Because the last time I ran the script a year or so ago, everything built fine.

    Thanks and hopefully we can get this resolved.

    PS: I am working on a new version with more bug fixes and features and will hopefully release within a month or two. I always announce on Deviant Art, and the installers are always posted on fractorium.com

  2. David Morán reporter

    Hi Matt,

    I wanted to build Fractorium to try a quite fun and ambitious project I came up with some time ago. The general idea is to connect some physical controls (knobs, switches, touchscreens...) to Fractorium so it's easier and faster to create flames. I'll open a new issue-proposal with the full idea I have for it.

    About the libraries dependencies, pointing to a specific version/tag could be a good choice so anyone willing to compile the project could do it without much hassle. Even having the dependencies already there, but that will probably conflict with some licenses :)

    Here's what I had done to compile everything. I tried to note down everyting, but maybe I miss something:

    • LibJPEG

    Compile it by hand on VS2017. Command nmake /f makefile.vc setup-v10 CPU=i386 doesn't point to anything inside that makefile, only setup-v15 is present and it throws the next error:

    >nmake /f makefile.vc setup-v15 CPU=i386
    
    Utilidad de mantenimiento de programas de Microsoft (R) versión 14.15.26726.0
    (C) Microsoft Corporation. Todos los derechos reservados.
    
            ren jconfig.vc jconfig.h
    El sistema no puede encontrar el archivo especificado. (Translation: System could not found specified file)
    NMAKE : fatal error U1077: 'ren' : returned code '0x1'
    Stop.
    
    • zlib: No issues to build

    • libxml2

    Failing to executing cscript:

    >cscript configure.js compiler=msvc iconv=no zlib=yes include=..\..\zlib lib=..\..\fractorium\Deps
    ===>>>
    Microsoft (R) Windows Script Host versión 5.812
    Copyright (C) Microsoft Corporation. Reservados todos los derechos.
    
    (Translated) Input error: No command sequence engine exist for file extension ".js"
    

    Was fixed executing "assoc .js=JSFile" on a SuperUser terminal and restarting Developer Command Prompt for VS 2017. It goes away after a system reboot and had to be done again.

    • libpng

    No errors, apart of a message saying

    Could not found G:\Users\David\Documents\code\fractorium\libpng\libpng.lib
    

    but libpng.lib is there at the end...

    • tbb

    I think this one could be added to the script to be downladed directly from one of the releases on GitHub (https://github.com/01org/tbb/releases). The folder in cd tbb\build\vs2012 has to be changed to cd tbb\build\vs2013 on latest version (2018_U5).

    After that, msbuild complains about "not founding compile tools v120" and you have to: 1. Open the solution (tbb\build\vs2013\Makefile.sln) 2. Right-click on the solution >Retarget solution` 3. Select latest Windows SDK Version (10.0.17134.0 in my case)

    And then building adding the x64 architecture: msbuild tbb.vcxproj /p:Configuration=Release /p:Platform=x64


    That's most of it, thanks for your time to check this out!

  3. Matt Feemster repo owner

    Thanks for the writeup. But all of my available time is already committed, so I won't be able to get to this until after the next release. My suggestion is just to figure out how to build openexr and manually copy the libs to where fractorium needs them.

    I'll leave this open and get back to it in a few months.

  4. Matt Feemster repo owner

    Ok David, thanks for all of your notes, they really helped. I added most of your suggestions, and figured out a few more things to do on my own and now the dependencies build script for Windows is fully up to date. Please pull the repository into its own empty folder, then manually get libjpeg from http://www.ijg.org/ and place the code contents into a folder at the same level as fractorium, named libjpeg (this is the same as before).

    After that, run "makedeps.bat" from the fractorium folder. It'll take about 10 minutes to complete.

    That's all you need to do, and all of the binaries will be placed into the fractorium/Deps folder. You shouldn't have to think about it after that.

    I am in the processes of preparing for a new release, so you should see it out soon (or you can just build the code yourself and get it early).

  5. David Morán reporter

    Thanks a lot Matt, I'll take a look to it as soon as I can and let you know how it goes.

  6. David Morán reporter

    Hi Matt,

    Great job with the building script and instructions. I made a fresh install of my system some weeks ago, and now almost every dependency builds without any hassle!

    Still got two issues with TBB and OpenEXR.

    TBB seems to be a problem of hardcoded version for Windows SDK version. My current version is 10.0.17134.0, which differs of the one in the script (10.0.16299.0). Could it be retrieved dynamically?

    Here's the output:

    G:\code\fractorium\tbb\build\vs2013>msbuild tbb.vcxproj /p:Configuration=Release /p:Platform=x64 /p:PlatformToolset=v141 /p:WindowsTargetPlatformVersion=10.0.16299.0
    Microsoft (R) Build Engine versión 15.8.169+g1ccb72aefa para .NET Framework
    Copyright (C) Microsoft Corporation. Todos los derechos reservados.
    
    Compilación iniciada a las 24/09/2018 19:15:55.
    Proyecto "G:\code\fractorium\tbb\build\vs2013\tbb.vcxproj" en nodo 1 (destinos predeterminados).
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.Cpp.WindowsSDK.targets(46,5): error MSB8036: The Windows SDK version 10.0.16299.0 was not found. Install the required version of Windows SD
    K or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution". [G:\code\fractorium\tbb\build\vs2013\tbb.vcxproj]
    Compilación del proyecto terminada "G:\code\fractorium\tbb\build\vs2013\tbb.vcxproj" (destinos predeterminados) -- ERROR.
    

    OpenEXR still fails, here's the output. Could not get to any solution for it.

    G:\code\fractorium\openexr>cmake --build . --target install --config Release
    Microsoft (R) Build Engine versión 15.8.169+g1ccb72aefa para .NET Framework
    C
    
    ...
    
         Creating library G:/code/fractorium/openexr/OpenEXR/IlmImf/Release/IlmImf-2_3.lib and object G:/code/fractorium/openexr/OpenEXR/IlmImf/Release/IlmImf-2_3.exp
    ImfDwaCompressor.obj : error LNK2019: unresolved external symbol compress2 referenced in function "private: int __cdecl Imf_2_3::DwaCompressor::compress(char const *,int,class Imath_2_3::Box<class Imath_2_3::Vec2<int> >,char const * &)"
     (?compress@DwaCompressor@Imf_2_3@@AEAAHPEBDHV?$Box@V?$Vec2@H@Imath_2_3@@@Imath_2_3@@AEAPEBD@Z) [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
    ImfDwaCompressor.obj : error LNK2019: unresolved external symbol compressBound referenced in function "private: int __cdecl Imf_2_3::DwaCompressor::compress(char const *,int,class Imath_2_3::Box<class Imath_2_3::Vec2<int> >,char const *
     &)" (?compress@DwaCompressor@Imf_2_3@@AEAAHPEBDHV?$Box@V?$Vec2@H@Imath_2_3@@@Imath_2_3@@AEAPEBD@Z) [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
    ImfDwaCompressor.obj : error LNK2019: unresolved external symbol uncompress referenced in function "private: int __cdecl Imf_2_3::DwaCompressor::uncompress(char const *,int,class Imath_2_3::Box<class Imath_2_3::Vec2<int> >,char const *
    &)" (?uncompress@DwaCompressor@Imf_2_3@@AEAAHPEBDHV?$Box@V?$Vec2@H@Imath_2_3@@@Imath_2_3@@AEAPEBD@Z) [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
    ImfPxr24Compressor.obj : error LNK2001: unresolved external symbol uncompress [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
    ImfZip.obj : error LNK2001: unresolved external symbol uncompress [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
    ImfPxr24Compressor.obj : error LNK2019: unresolved external symbol compress referenced in function "private: int __cdecl Imf_2_3::Pxr24Compressor::compress(char const *,int,class Imath_2_3::Box<class Imath_2_3::Vec2<int> >,char const *
    &)" (?compress@Pxr24Compressor@Imf_2_3@@AEAAHPEBDHV?$Box@V?$Vec2@H@Imath_2_3@@@Imath_2_3@@AEAPEBD@Z) [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
    ImfZip.obj : error LNK2001: unresolved external symbol compress [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
    G:\code\fractorium\zlib\zlib.lib : warning LNK4272: library machine type 'x86' conflicts with target machine type 'x64' [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
    G:\code\fractorium\openexr\OpenEXR\IlmImf\Release\IlmImf-2_3.dll : fatal error LNK1120: 4 unresolved externals [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
    Proyect build finished "G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj" (default destinations) -- ERROR.
    
    ...
    
    "G:\code\fractorium\openexr\install.vcxproj" (default destination) (1) ->
    "G:\code\fractorium\openexr\ALL_BUILD.vcxproj" (default destination) (3) ->
    "G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj" (default destination) (14) ->
    (Link destination) ->
      ImfDwaCompressor.obj : error LNK2019: unresolved external symbol compress2 referenced in function "private: int __cdecl Imf_2_3::DwaCompressor::compress(char const *,int,class Imath_2_3::Box<class Imath_2_3::Vec2<int> >,char const * &
    )" (?compress@DwaCompressor@Imf_2_3@@AEAAHPEBDHV?$Box@V?$Vec2@H@Imath_2_3@@@Imath_2_3@@AEAPEBD@Z) [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
      ImfDwaCompressor.obj : error LNK2019: unresolved external symbol compressBound referenced in function "private: int __cdecl Imf_2_3::DwaCompressor::compress(char const *,int,class Imath_2_3::Box<class Imath_2_3::Vec2<int> >,char const
     * &)" (?compress@DwaCompressor@Imf_2_3@@AEAAHPEBDHV?$Box@V?$Vec2@H@Imath_2_3@@@Imath_2_3@@AEAPEBD@Z) [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
      ImfDwaCompressor.obj : error LNK2019: unresolved external symbol uncompress referenced in function "private: int __cdecl Imf_2_3::DwaCompressor::uncompress(char const *,int,class Imath_2_3::Box<class Imath_2_3::Vec2<int> >,char const
    * &)" (?uncompress@DwaCompressor@Imf_2_3@@AEAAHPEBDHV?$Box@V?$Vec2@H@Imath_2_3@@@Imath_2_3@@AEAPEBD@Z) [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
      ImfPxr24Compressor.obj : error LNK2001: unresolved external symbol uncompress [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
      ImfZip.obj : error LNK2001: unresolved external symbol uncompress [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
      ImfPxr24Compressor.obj : error LNK2019: unresolved external symbol compress referenced in function "private: int __cdecl Imf_2_3::Pxr24Compressor::compress(char const *,int,class Imath_2_3::Box<class Imath_2_3::Vec2<int> >,char const
    * &)" (?compress@Pxr24Compressor@Imf_2_3@@AEAAHPEBDHV?$Box@V?$Vec2@H@Imath_2_3@@@Imath_2_3@@AEAPEBD@Z) [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
      ImfZip.obj : error LNK2001: unresolved external symbol compress [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
      G:\code\fractorium\openexr\OpenEXR\IlmImf\Release\IlmImf-2_3.dll : fatal error LNK1120: 4 unresolved externals [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
    
        397 Warnings(s)
        8 Errors
    

    And finally some errors due to missing files:

    G:\code\fractorium\openexr>cd G:\code\fractorium\openexr
    
    G:\code\fractorium\openexr>copy G:\code\fractorium\openexr\output\lib\Half-2_3.lib G:\code\fractorium\openexr\..\fractorium\Deps\Half-2_3.lib
    System could not found specified path.
    
    G:\code\fractorium\openexr>copy G:\code\fractorium\openexr\output\lib\Iex-2_3.lib G:\code\fractorium\openexr\..\fractorium\Deps\Iex-2_3.lib
    System could not found specified path.
    
    G:\code\fractorium\openexr>copy G:\code\fractorium\openexr\output\lib\IexMath-2_3.lib G:\code\fractorium\openexr\..\fractorium\Deps\IexMath-2_3.lib
    System could not found specified path.
    
    G:\code\fractorium\openexr>copy G:\code\fractorium\openexr\output\lib\IlmImf-2_3.lib G:\code\fractorium\openexr\..\fractorium\Deps\IlmImf-2_3.lib
    System could not found specified path.
    
    G:\code\fractorium\openexr>copy G:\code\fractorium\openexr\output\lib\IlmImfUtil-2_3.lib G:\code\fractorium\openexr\..\fractorium\Deps\IlmImfUtil-2_3.lib
    System could not found specified path.
    
    G:\code\fractorium\openexr>copy G:\code\fractorium\openexr\output\lib\IlmThread-2_3.lib G:\code\fractorium\openexr\..\fractorium\Deps\IlmThread-2_3.lib
    System could not found specified path.
    
    G:\code\fractorium\openexr>copy G:\code\fractorium\openexr\output\lib\Imath-2_3.lib G:\code\fractorium\openexr\..\fractorium\Deps\Imath-2_3.lib
    System could not found specified path.
    
    G:\code\fractorium\openexr>copy G:\code\fractorium\openexr\OpenEXR\IlmImf\Release\IlmImf-2_3.dll G:\code\fractorium\openexr\..\fractorium\Deps\IlmImf-2_3.dll
    System could not found specified file.
    
    G:\code\fractorium\openexr>xcopy G:\code\fractorium\openexr\output\Include G:\code\fractorium\openexr\..\fractorium\Deps\Include\ /S /Y
    File not found: Include
    0 archivo(s) copiado(s)
    
    G:\code\fractorium\openexr>xcopy G:\code\fractorium\openexr\output\bin\*.dll G:\code\fractorium\openexr\..\fractorium\Deps\ /Y
    File not found: *.dll
    0 archivo(s) copiado(s)
    
    G:\code\fractorium\openexr>REM IlmImfUtil is not needed.
    
    G:\code\fractorium\openexr>del ..\fractorium\Deps\IlmImfUtil-2_3.dll
    Could not found G:\code\fractorium\fractorium\Deps\IlmImfUtil-2_3.dll
    
    G:\code\fractorium\openexr>cd ..\fractorium
    
    G:\code\fractorium\fractorium>
    
  7. Matt Feemster repo owner

    Ok, looks like we're almost there.

    As for TBB, I am not sure how to set that value automatically. Perhaps try removing it. If not, just make it match whatever your install of Visual Studio is using (I think you are one update package ahead of me).

    It appears openexr cannot find the location of zlib for the compress functions. Are you sure zlib built and is located one level above the folder that openexr is in, like my build instructions show?

    And yes, the last errors are due to openexr not building. They will go away once you successfully build.

  8. David Morán reporter

    TBB was successfully built modifying the SDK version manually, no luck leaving it blank. I'll check if it could be retrieved somehow automatically.

    About OpenEXR, zlib is correctly placed and it seems that it's being detected, but I see these two suspicious messages:

    G:\code\fractorium\openexr>cmake -G "Visual Studio 15 2017 Win64"      -DCMAKE_PREFIX_PATH="G:\code\fractorium\openexr\output"      -DCMAKE_INSTALL_PREFIX="G:\code\fractorium\openexr\output"      -DILMBASE_PACKAGE_PREFIX="G:\code\fractorium\openexr\output"       -DZLIB_ROOT="..\zlib"   -DOPENEXR_BUILD_SHARED_LIBS="ON"        -DOPENEXR_BUILD_VIEWERS="OFF"   -DOPENEXR_BUILD_STATIC_LIBS="OFF"       -DOPENEXR_BUILD_PYTHON_LIBS="OFF"       -DOPENEXR_ENABLE_TESTS="OFF"      .\
    CMake Warning (dev) at CMakeLists.txt:115 (find_package):
      Policy CMP0074 is not set: find_package uses <PackageName>_ROOT variables.
      Run "cmake --help-policy CMP0074" for policy details.  Use the cmake_policy
      command to set the policy and suppress this warning.
    
      CMake variable ZLIB_ROOT is set to:
    
        ..\zlib
    
      For compatibility, CMake is ignoring the variable.
    This warning is for project developers.  Use -Wno-dev to suppress it.
    

    and

    "G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj" (destino predeterminado) (14) ->
    (Link destino) ->
      G:\code\fractorium\zlib\zlib.lib : warning LNK4272: library machine type 'x86' conflicts with target machine type 'x64' [G:\code\fractorium\openexr\OpenEXR\IlmImf\IlmImf.vcxproj]
    

    Here's the full output log https://pastebin.com/r47rJ2vi

  9. Matt Feemster repo owner

    Ok, I think I might know the zlib problem. When opening the command prompt, you MUST open the x64 command prompt. Look on your start menu closely and notice that visual studio comes with two shortcuts to the command prompt. I only support the x64 one, because why build for 32 bit?

    Start over from scratch in a new folder with x64 and tell me how it goes.

  10. Matt Feemster repo owner

    Update your code again. I fixed a small bug in makedeps.bat and I also updated the tools version to the latest visual studio (you can keep it matching whatever yours is). I just tested a build from scratch and everything works fine.

    Also, just so you know I made a new release on fractorium.com, so have a look there if you just want the installer.

  11. David Morán reporter

    Hi Matt!

    Everything seems to be compiling without problems using x64 command prompt. There's still one error mentioned when building libjpeg, but it's related to cjpeg.exe, the actual libjpeg.lib seems to be building just right:

    G:\code\fractorium\libjpeg>nmake nodebug=1 /f makefile.vc all CPU=i386
    
    Microsoft (R) Program Maintenance Utility Version 14.15.26730.0
    Copyright (C) Microsoft Corporation.  All rights reserved.
    
            link /RELEASE /NODEFAULTLIB /INCREMENTAL:NO /PDB:NONE /RELEASE /NOLOGO -subsystem:console,4.0 -out:cjpeg.exe cjpeg.obj rdppm.obj rdgif.obj rdtarga.obj rdrle.obj rdbmp.obj  rdswitch.obj cdjpeg.obj libjpeg.lib libc.lib oldnames.lib kernel32.lib  ws2_32.lib mswsock.lib advapi32.lib
    LINK : warning LNK4010: invalid subsystem version number 4.0; default subsystem version assumed
    LINK : fatal error LNK1181: cannot open input file 'libc.lib'
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\bin\HostX64\x64\link.EXE"' : return code '0x49d'
    Stop.
    

    Maybe calling make to just build libjpeg instead of all could be enough? (really no big deal apart to avoid an error...)

    nmake /f makefile.vc libjpeg.lib CPU=i386
    

    I'll try to build Fractorium and let see how it goes. Thanks for the new release, I'll check it out.

  12. Matt Feemster repo owner

    I've made the changes you suggest. Please update your code. Also, I've been building with the latest version of Qt at the moment: 5.11.2

    So it would be best if you install that version first before doing anything else, that way we are on the same page.

  13. David Morán reporter

    Hi Matt,

    Cleaned everything, executed makedeps.bat again and everything went smooth. I installed version 5.11.2 of QT as suggested and I was able to compile using Visual Studio, except for the FractoriumInstaller module which is giving the next errors:

    8>------ Build started: Project: FractoriumInstaller, Configuration: Release x64 ------
    8>      C:\Program Files (x86)\WiX Toolset v3.11\bin\candle.exe -dGpuType=AMD_NVIDIA -d"DevEnvDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\\" -dSolutionDir=G:\code\fractorium\fractorium\Builds\MSVC\VS2017\ -dSolutionExt=.sln -dSolutionFileName=Fractorium.sln -dSolutionName=Fractorium -dSolutionPath=G:\code\fractorium\fractorium\Builds\MSVC\VS2017\Fractorium.sln -dConfiguration=Release -dOutDir=G:\code\fractorium\fractorium\Builds\MSVC\VS2017\..\..\..\Bin\x64\Release\ -dPlatform=x64 -dProjectDir=G:\code\fractorium\fractorium\Builds\MSVC\Installer\ -dProjectExt=.wixproj -dProjectFileName=FractoriumInstaller.wixproj -dProjectName=FractoriumInstaller -dProjectPath=G:\code\fractorium\fractorium\Builds\MSVC\Installer\FractoriumInstaller.wixproj -dTargetDir=G:\code\fractorium\fractorium\Bin\x64\Release\ -dTargetExt=.msi -dTargetFileName=Fractorium_1.0.0.12.msi -dTargetName=Fractorium_1.0.0.12 -dTargetPath=G:\code\fractorium\fractorium\Bin\x64\Release\Fractorium_1.0.0.12.msi -out obj\x64\Release\ -arch x64 -ext "C:\Program Files (x86)\WiX Toolset v3.11\bin\\WixUIExtension.dll" Product.wxs
    8>      C:\Program Files (x86)\WiX Toolset v3.11\bin\Light.exe -out G:\code\fractorium\fractorium\Bin\x64\Release\Fractorium_1.0.0.12.msi -pdbout G:\code\fractorium\fractorium\Bin\x64\Release\Fractorium_1.0.0.12.wixpdb -cultures:null -ext "C:\Program Files (x86)\WiX Toolset v3.11\bin\\WixUIExtension.dll" -spdb -contentsfile obj\x64\Release\FractoriumInstaller.wixproj.BindContentsFileListnull.txt -outputsfile obj\x64\Release\FractoriumInstaller.wixproj.BindOutputsFileListnull.txt -builtoutputsfile obj\x64\Release\FractoriumInstaller.wixproj.BindBuiltOutputsFileListnull.txt -wixprojectfile G:\code\fractorium\fractorium\Builds\MSVC\Installer\FractoriumInstaller.wixproj obj\x64\Release\Product.wixobj
    8>G:\code\fractorium\fractorium\Builds\MSVC\Installer\Product.wxs(127,0): error LGHT0204: ICE38: Component Fractorium.exe installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file.
    8>G:\code\fractorium\fractorium\Builds\MSVC\Installer\Product.wxs(130,0): error LGHT0204: ICE38: Component EmberRender.exe installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file.
    8>G:\code\fractorium\fractorium\Builds\MSVC\Installer\Product.wxs(133,0): error LGHT0204: ICE38: Component EmberAnimate.exe installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file.
    ...
    ...
    8>G:\code\fractorium\fractorium\Builds\MSVC\Installer\Product.wxs(314,0): error LGHT0204: ICE38: Component qwindows.dll installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file.
    8>G:\code\fractorium\fractorium\Builds\MSVC\Installer\Product.wxs(84,0): error LGHT0204: ICE64: The directory INSTALLFOLDER is in the user profile but is not listed in the RemoveFile table.
    8>G:\code\fractorium\fractorium\Builds\MSVC\Installer\Product.wxs(85,0): error LGHT0204: ICE64: The directory INSTALLFOLDERBENCH is in the user profile but is not listed in the RemoveFile table.
    8>G:\code\fractorium\fractorium\Builds\MSVC\Installer\Product.wxs(86,0): error LGHT0204: ICE64: The directory INSTALLFOLDERPLATFORMS is in the user profile but is not listed in the RemoveFile table.
    

    Fractorium executable were created and worked pretty well, so appart from that no big deal.

    I wasn't able to compile it with QT Creator, after following all the steps on the wiki it was throwing the next error

    19:28:00: Running steps for project main...
    19:28:00: Configuration unchanged, skipping qmake step.
    19:28:00: Starting: "C:\Qt\Tools\QtCreator\bin\jom.exe" install
        cd Builds\QtCreator\Ember\ && ( if not exist Makefile C:\Qt\5.11.2\msvc2017_64\bin\qmake.exe -o Makefile G:\code\fractorium\fractorium\Builds\QtCreator\Ember\Ember.pro -spec win32-msvc "CONFIG+=qtquickcompiler" ) && C:\Qt\Tools\QtCreator\bin\jom.exe -f Makefile install
    ...
    ...
    LINK : fatal error LNK1181: cannot open input file '\lib\x64\OpenCL.lib'
    jom: G:\code\fractorium\fractorium\Builds\QtCreator\Ember\Makefile.Release [..\..\..\Bin\release\ember.dll] Error 1181
    jom: G:\code\fractorium\fractorium\Builds\QtCreator\Ember\Makefile [release-install] Error 2
    jom: G:\code\fractorium\fractorium\Makefile [sub-Builds-QtCreator-Ember-install_subtargets-ordered] Error 2
    19:29:33: The process "C:\Qt\Tools\QtCreator\bin\jom.exe" exited with code 2.
    Error while building/deploying project main (kit: Desktop Qt 5.11.2 MSVC2017 64bit)
    The kit Desktop Qt 5.11.2 MSVC2017 64bit has configuration issues which might be the root cause for this problem.
    When executing step "Make"
    

    Probably I'm missing some configuration there.

    Edit: I have also installed latest CUDA Toolkit (v. 10.0.130, I have a GTX660) to try solve the OpenCL dependency, not sure if necessary.

  14. Matt Feemster repo owner

    Awesome! Don't worry about building the Wix project. You can just unload that project. It's what I use to build the installer.

    Let me know if you are able to get fractorium to build, and then run with the gpu. You're almost there!

  15. David Morán reporter

    Building successful and it's working fine with the GPU!

    Yet the building with QT Creator is not working, any idea on that? (could be useful at some point?)

  16. Matt Feemster repo owner

    Ok great! Very glad to hear it.

    Yeah, getting QT Creator to work is a pain. I know it had it working at one point, but that decayed over time. I'm not really focused on it for now, especially since VS is free and you appear to have that working.

    I am going to close this issue.

  17. Log in to comment