Unable to compile tsk_logical_imager in 4.6.7

Hi all,

I have successfully compiled previous versions of sleuthkit (4.6.5 and 4.6.6) in the past. However, I appear to be unable to compile 4.6.7 due to the new logical imager project.

I am trying to build Release_PostgreSQL x64 using the solution file in the win32 folder. I am using Microsoft Visual Studio Professional 2015 Version 14.0.23107.0 D14REL. I’m including some of the compiler output below (not including the full output since the body of this message is limited to 3200 characters):

32>------ Rebuild All started: Project: tsk_logical_imager, Configuration: Release_PostgreSQL x64 ------
30>  dataModel_SleuthkitJNI.cpp
24>  tsk_recover.vcxproj -> C:\projects\autopsy-dependencies\sleuthkit-4.6.7\win32\x64\Release_PostgreSQL\tsk_recover.exe
31>  fcat.cpp
32>cl : Command line warning D9002: ignoring unknown option '/utf-8'
32>  LogicalImagerConfiguration.cpp
26>  tsk_compare.vcxproj -> C:\projects\autopsy-dependencies\sleuthkit-4.6.7\win32\x64\Release_PostgreSQL\tsk_comparedir.exe
29>  Generating code
32>c:\projects\autopsy-dependencies\sleuthkit-4.6.7\tools\logicalimager\json.h(665): error C4579: 'nlohmann::detail::static_const<nlohmann::detail::from_json_fn>::value': in-class initialization for type 'const T' is not yet implemented; static member will remain uninitialized at runtime but use in constant-expressions is supported
32>          with
32>          [
28>  Generating code
32>              T=nlohmann::detail::from_json_fn
32>          ]
32>  c:\projects\autopsy-dependencies\sleuthkit-4.6.7\tools\logicalimager\json.h(1675): note: see reference to class template instantiation 'nlohmann::detail::static_const<nlohmann::detail::from_json_fn>' being compiled
32>c:\projects\autopsy-dependencies\sleuthkit-4.6.7\tools\logicalimager\json.h(665): error C2131: expression did not evaluate to a constant
32>  c:\projects\autopsy-dependencies\sleuthkit-4.6.7\tools\logicalimager\json.h(665): note: failure was caused by returning the address of or a reference to a temporary
========== Rebuild All: 31 succeeded, 1 failed, 0 skipped ==========

I’m guessing this is a c++11 feature that isn’t fully implemented in my version of the compiler. Is there an easy substitution I can make to work around this?

It builds fine with Visual Studio 2015 Version 14.0.25431.01 Update 3.
It looks like version 14.0.23107.0 was the RTM version and there were a number of updates after that. Can you try updating your version of VS? Tools -> Extensions and Updates -> Updates -> Product Updates might do the trick otherwise you may have to track down the download through https://visualstudio.microsoft.com/vs/older-downloads/

I was able to compile using VS 2015 Update 3. Thanks for the help.