htm-community / htm.core

Actively developed Hierarchical Temporal Memory (HTM) community fork (continuation) of NuPIC. Implementation for C++ and Python
http://numenta.org
GNU Affero General Public License v3.0
151 stars 75 forks source link

Error while building on windows - BITNESS incorrectly detected #577

Closed leonardtschora closed 5 years ago

leonardtschora commented 5 years ago

Hi all. First of all, sorry by advance if this post is irrelevant. I've read several related posts about building issues but still couldn't fixe my problem. Thanks also by advance for your time.

So I'm struggling to get htm.building. I followed the section of the installation tutorial

Simple Build On Windows (MS Visual Studio 2017 or 2019) with this configuration:

The first step which happens just after clicking on startupMSVC.bat works correctly and here are the displayed logs : `HTM_BASE=C:\Users\Leonard\Documents\htm.core -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- The CXX compiler identification is MSVC 19.16.27032.1 -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- REPOSITORY_DIR = C:/Users/Leonard/Documents/htm.core -- CMAKE_BINARY_DIR = C:/Users/Leonard/Documents/htm.core/build/scripts -- CMAKE_BUILD_TYPE = Release -- CMAKE_INSTALL_PREFIX = C:/Users/Leonard/Documents/htm.core/build/Release -- FORCE_CPP11 = OFF -- FORCE_BOOST = OFF -- BINDING_BUILD = none -- Environment var CXX =

-- CMAKE_CXX_COMPILER_ID= MSVC -- CMAKE_CXX_COMPILER_VERSION=19.16.27032.1 -- CMAKE_CXX_COMPILER = C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe -- CMAKE_CXX_STANDARD = 17 -- PLATFORM = windows -- BITNESS = 64 -- NEEDS_BOOST = OFF -- INTERNAL_CXX_FLAGS = /permissive-;/W3;/Gm-;/EHsc;/FC;/nologo;/Zc:__cplusplus;$<$:/O2;/Oi;/Gy;/GL;/MD>;$<$:/Ob0;/Od;/Zi;/sdl;/RTC1;/MDd> -- INTERNAL_LINKER_FLAGS= -MACHINE:X64;-NOLOGO;-NODEFAULTLIB:LIBCMT;-ignore:4099;$<$:-LTCG> -- INTERNAL_LINKER_FLAGS_STR= -MACHINE:X64 -NOLOGO -NODEFAULTLIB:LIBCMT -ignore:4099 $<$:-LTCG> -- COMMON_COMPILER_DEFINITIONS_STR=_CONSOLE _MBCS NTA_OS_WINDOWS NTA_COMPILER_MSVC NTA_ARCH_64 _CRT_SECURE_NO_WARNINGS _SCL_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE _SCL_SECURE_NO_DEPRECATE BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE BOOST_ALL_NO_LIB BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS BOOST_NO_WREGEX _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING VC_EXTRALEAN WIN32_LEAN_AND_MEAN NOMINMAX NOGDI $<$:NTA_ASSERTIONS_ON> -- COMMON_OS_LIBS = oldnames.lib;psapi.lib;ws2_32.lib -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- The CXX compiler identification is MSVC 19.16.27032.1 -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- external import -- REPOSITORY_DIR = C:/Users/Leonard/Documents/htm.core -- CMAKE_BINARY_DIR = C:/Users/Leonard/Documents/htm.core/build/ThirdParty -- CMAKE_INSTALL_PREFIX = C:/Users/Leonard/Documents/htm.core/build/ThirdParty -- CMAKE_BUILD_TYPE = Release -- EXTERNAL_CXX_FLAGS = /EHsc;$<$:/MD>;$<$:/MDd> -- NEEDS_BOOST = OFF -- BINDING_BUILD = none -- common_INCLUDE_DIR= C:/Users/Leonard/Documents/htm.core/external/common -- common_LIBRARIES= C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> -- C:/Users/Leonard/Documents/htm.core/build/ThirdParty/share/yaml-cpp.zip -- Obtaining yaml-cpp from https://github.com/jbeder/yaml-cpp/archive/master.zip -- The C compiler identification is MSVC 19.16.27032.1 -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- obtaining Eigen -- Obtaining gtest -- Found PythonInterp: C:/Users/Leonard/AppData/Local/Programs/Python/Python37/python.exe (found version "3.7.2") -- Looking for pthread.h -- Looking for pthread.h - not found -- Found Threads: TRUE -- obtaining MNIST data -- Downloading/updating mnist -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- Configuring done -- Generating done -- Build files have been written to: C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 pour .NET Framework Copyright (C) Microsoft Corporation. Tous droits r�serv�s.

Checking Build System CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeFiles/generate.stamp is up-to-date. Creating directories for 'mnist-download' Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeFiles/generate.stamp is up-to-date. Performing download step (download, verify and extract) for 'mnist-download' -- Downloading... dst='C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/mnist-download-prefix/src/master.zip' timeout='none' -- Using src='https://github.com/wichtounet/mnist/archive/master.zip' -- Downloading... done -- extracting... src='C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/mnist-download-prefix/src/master.zip' dst='C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src' -- extracting... [tar xfz] -- extracting... [analysis] -- extracting... [rename] -- extracting... [clean up] -- extracting... done No skip-update step for 'mnist-download' No patch step for 'mnist-download' No configure step for 'mnist-download' No build step for 'mnist-download' No install step for 'mnist-download' No test step for 'mnist-download' Completed 'mnist-download' Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeFiles/generate.stamp is up-to-date. -- obtaining Cereal -- Configuring done -- Generating done -- Build files have been written to: C:/Users/Leonard/Documents/htm.core/build/ThirdParty Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 pour .NET Framework Copyright (C) Microsoft Corporation. Tous droits r�serv�s.

Checking Build System CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-build/CMakeFiles/generate.stamp is up-to-date. Building Custom Rule C:/Users/Leonard/Documents/htm.core/external/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. MurmurHash3.cpp common.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\Release\common.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. gtest-all.cc gtest.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Release\gtest.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. gtest_main.cc gtest_main.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Release\gtest_main.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src/example/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-build/CMakeFiles/generate.stamp is up-to-date. main.cpp c:\users\leonard\documents\htm.core\build\thirdparty\mnist_data\mnist-src\include\mnist\mnist_reader_common.hpp(46): warning C4244: 'initialisation'�: conversion de 'std::streamoff' en 'unsigned int', perte possible de donn�es [C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\mnist_example.vcxproj] mnist_example.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\Release\mnist_example.exe Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build/CMakeFiles/generate.stamp is up-to-date. binary.cpp convert.cpp directives.cpp emit.cpp emitfromevents.cpp emitter.cpp emitterstate.cpp emitterutils.cpp exceptions.cpp exp.cpp memory.cpp node.cpp node_data.cpp nodebuilder.cpp nodeevents.cpp null.cpp ostream_wrapper.cpp parse.cpp parser.cpp regex_yaml.cpp G�n�ration de code en cours... Compilation en cours... scanner.cpp scanscalar.cpp scantag.cpp scantoken.cpp simplekey.cpp singledocparser.cpp stream.cpp tag.cpp G�n�ration de code en cours... yaml-cpp.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\yaml-cpp\yaml-cpp-build\Release\libyaml-cppmd.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/external/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 pour .NET Framework Copyright (C) Microsoft Corporation. Tous droits r�serv�s.

Checking Build System CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-build/CMakeFiles/generate.stamp is up-to-date. Building Custom Rule C:/Users/Leonard/Documents/htm.core/external/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. MurmurHash3.cpp common.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\Debug\common.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. gtest-all.cc gtest.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Debug\gtestd.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. gtest_main.cc gtest_main.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Debug\gtest_maind.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src/example/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-build/CMakeFiles/generate.stamp is up-to-date. main.cpp c:\users\leonard\documents\htm.core\build\thirdparty\mnist_data\mnist-src\include\mnist\mnist_reader_common.hpp(46): warning C4244: 'initialisation'�: conversion de 'std::streamoff' en 'unsigned int', perte possible de donn�es [C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\mnist_example.vcxproj] mnist_example.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\Debug\mnist_example.exe Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build/CMakeFiles/generate.stamp is up-to-date. binary.cpp convert.cpp directives.cpp emit.cpp emitfromevents.cpp emitter.cpp emitterstate.cpp emitterutils.cpp exceptions.cpp exp.cpp memory.cpp node.cpp node_data.cpp nodebuilder.cpp nodeevents.cpp null.cpp ostream_wrapper.cpp parse.cpp parser.cpp regex_yaml.cpp G�n�ration de code en cours... Compilation en cours... scanner.cpp scanscalar.cpp scantag.cpp scantoken.cpp simplekey.cpp singledocparser.cpp stream.cpp tag.cpp G�n�ration de code en cours... yaml-cpp.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\yaml-cpp\yaml-cpp-build\Debug\libyaml-cppmdd.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/external/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. -- Results from external build: -- common_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/external/common -- common_LIBRARIES = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> -- yaml-cpp_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-src/include -- yaml-cpp_LIBRARIES = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$<$:/Release/libyaml-cppmd.lib>$<$:/Debug/libyaml-cppmdd.lib> -- eigen_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/eigen/eigen-src -- gtest_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/include -- gtest_LIBRARIES = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/$<$:Release>$<$:Debug>/gtest$<$:d>.lib -- mnist_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src/include -- mnist_SOURCE_DIR = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src -- cereal_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/cereal/cereal-src/include -- Configuring htm_core src -- MERGE_STATIC_LIBRARIES LIB_TARGET=htm_core, STATIC_LIBS = htm_core_solo;C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$<$:/Release/libyaml-cppmd.lib>$<$:/Debug/libyaml-cppmdd.lib>;C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> -- MERGE_STATIC_LIBRARIES: htm_core_solo -- MERGE_STATIC_LIBRARIES: C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$<$:/Release/libyaml-cppmd.lib>$<$:/Debug/libyaml-cppmdd.lib> - non-target lib. -- MERGE_STATIC_LIBRARIES: C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> - non-target lib. -- Configuring htm_core tests -- Configuring done -- Generating done -- Build files have been written to: C:/Users/Leonard/Documents/htm.core/build/scripts " " You can now start Visual Studio using solution file C:\Users\Leonard\Documents\htm.core\build\scripts\htm_core.sln Dont forget to set your default Startup Project to unit_tests. Press any key to start Visual Studio`

So this seems to have worked fine. However, after chossing to build "Release", I get the following logs : '1>------ Build started: Project: ZERO_CHECK, Configuration: Release x64 ------ 1>Checking Build System 1>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/CMakeFiles/generate.stamp is up-to-date. 1>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. 1>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/test/CMakeFiles/generate.stamp is up-to-date. 2>------ Build started: Project: LibrarySource, Configuration: Release x64 ------ 2>Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/CMakeLists.txt 2>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. 2>Anomaly.cpp 2>AnomalyLikelihood.cpp 2>Connections.cpp 2>SDRClassifier.cpp 2>SpatialPooler.cpp 2>TemporalMemory.cpp 2>c:\users\leonard\documents\htm.core\src\htm\algorithms\temporalmemory.cpp(223): warning C4267: 'argument': conversion from 'size_t' to 'htm::UInt', possible loss of data 2>ScalarEncoder.cpp 2>RandomDistributedScalarEncoder.cpp 2>Input.cpp 2>Link.cpp 2>Network.cpp 2>NuPIC.cpp 2>Output.cpp 2>Region.cpp 2>RegionImpl.cpp 2>RegionImplFactory.cpp 2>Spec.cpp 2>YAMLUtils.cpp 2>Watcher.cpp 2>ArrayBase.cpp 2>Compiling... 2>BasicType.cpp 2>Scalar.cpp 2>Value.cpp 2>Directory.cpp 2>Env.cpp 2>OS.cpp 2>OSUnix.cpp 2>OSWin.cpp 2>Path.cpp 2>Timer.cpp 2>ScalarSensor.cpp 2>SPRegion.cpp 2>TestNode.cpp 2>TMRegion.cpp 2>VectorFile.cpp 2>VectorFileEffector.cpp 2>VectorFileSensor.cpp 2>Sdr.cpp 2>LoggingException.cpp 2>LogItem.cpp 2>Compiling... 2>MovingAverage.cpp 2>Random.cpp 2>SdrMetrics.cpp 2>StlIo.cpp 2>Topology.cpp 2>LINK : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 2>LibrarySource.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\scripts\src\LibrarySource.dir\Release\LibrarySource.lib 2>Done building project "LibrarySource.vcxproj". 3>------ Build started: Project: htm_core_solo, Configuration: Release x64 ------ 3>Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/CMakeLists.txt 3>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. 3>LINK : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 3>htm_core_solo.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\scripts\src\Release\htm_core_solo.lib 4>------ Build started: Project: htm_core, Configuration: Release x64 ------ 4>Generating htm_core_dummy.c++ 4>Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/CMakeLists.txt 4>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. 4>htm_core_dummy.c++ 4>LINK : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 4>htm_core.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\scripts\src\Release\htm_core.lib 4>Combining $^<TARGET_FILE:htm_core^> for target htm_core from $^<TARGET_FILE:htm_core_solo^>;C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$^<$^<CONFIG:Release^>:/Release/libyaml-cppmd.lib^>$^<$^<CONFIG:Debug^>:/Debug/libyaml-cppmdd.lib^>;C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$^<$^<CONFIG:Release^>:Release/common.lib^>$^<$^<CONFIG:Debug^>:Debug/common.lib^>. 4>Microsoft (R) Library Manager Version 14.16.27032.1 4>Copyright (C) Microsoft Corporation. All rights reserved. 4> 4>htm_core_solo.lib(Anomaly.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 4>Microsoft (R) Library Manager Version 14.16.27032.1 4>Copyright (C) Microsoft Corporation. All rights reserved. 4> 5>------ Build started: Project: benchmark_hotgym, Configuration: Release x64 ------ 6>------ Build started: Project: mnist_sp, Configuration: Release x64 ------ 7>------ Build started: Project: unit_tests, Configuration: Release x64 ------ 5>Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/CMakeLists.txt 5>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. 5>Hotgym.cpp 6>Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/CMakeLists.txt 6>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. 7>Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/test/CMakeLists.txt 7>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/test/CMakeFiles/generate.stamp is up-to-date. 6>MNIST_SP.cpp 7>UnitTestMain.cpp 5>HelloSPTP.cpp 7>AnomalyTest.cpp 6>c:\users\leonard\documents\htm.core\build\thirdparty\mnist_data\mnist-src\include\mnist\mnist_utils.hpp(29): warning C4244: '=': conversion from 'double' to 'unsigned char', possible loss of data 6>c:\users\leonard\documents\htm.core\build\thirdparty\mnist_data\mnist-src\include\mnist\mnist_utils.hpp(89): note: see reference to function template instantiation 'void mnist::binarize_each<std::vector<Image,std::allocator<_Ty>>>(Container &,double)' being compiled 6> with 6> [ 6> Image=std::vector<uint8_t,std::allocator>, 6> _Ty=std::vector<uint8_t,std::allocator>, 6> Container=std::vector<std::vector<uint8_t,std::allocator>,std::allocator<std::vector<uint8_t,std::allocator>>> 6> ] 6>c:\users\leonard\documents\htm.core\src\examples\mnist\mnist_sp.cpp(106): note: see reference to function template instantiation 'void mnist::binarize_dataset<mnist::MNIST_dataset<std::vector,std::vector<uint8_t,std::allocator<_Ty>>,uint8_t>>(Dataset &)' being compiled 6> with 6> [ 6> _Ty=uint8_t, 6> Dataset=mnist::MNIST_dataset<std::vector,std::vector<uint8_t,std::allocator>,uint8_t> 6> ] 6>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\filesystem(2392): note: see reference to class template instantiation 'std::chrono::time_point<std::filesystem::_File_time_clock,std::filesystem::_File_time_clock::duration>' being compiled 6>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\type_traits(616): note: see reference to class template instantiation 'std::basic_string_view<wchar_t,std::char_traits>' being compiled 6>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\xstring(2122): note: see reference to class template instantiation 'std::is_convertible<const _StringViewIsh &,std::basic_string_view<wchar_t,std::char_traits>>' being compiled 6> with 6> [ 6> _StringViewIsh=const wchar_t 6> ] 6>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\xstring(2122): note: see reference to variable template 'const bool conjunction_v<std::is_convertible<wchar_t const const &,std::basic_string_view<wchar_t,std::char_traits > >,std::negation<std::is_convertible<wchar_t const const &,wchar_t const > > >' being compiled 6>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\xstring(2281): note: see reference to alias template instantiation 'std::basic_string<wchar_t,std::char_traits,std::allocator>::_Is_string_view_ish<_StringViewIsh>' being compiled 6> with 6> [ 6> _StringViewIsh=const wchar_t 6> ] 7>AnomalyLikelihoodTest.cpp 7>ConnectionsPerformanceTest.cpp 6> Creating library C:/Users/Leonard/Documents/htm.core/build/scripts/src/Release/mnist_sp.lib and object C:/Users/Leonard/Documents/htm.core/build/scripts/src/Release/mnist_sp.exp 6>Generating code 5> Creating library C:/Users/Leonard/Documents/htm.core/build/scripts/src/Release/benchmark_hotgym.lib and object C:/Users/Leonard/Documents/htm.core/build/scripts/src/Release/benchmark_hotgym.exp 5>htm_core.lib(RandomDistributedScalarEncoder.obj) : error LNK2001: unresolved external symbol "unsigned int __cdecl htm::MurmurHash3_x86_32(void const ,int,unsigned int)" (?MurmurHash3_x86_32@htm@@YAIPEBXHI@Z) 5>C:\Users\Leonard\Documents\htm.core\build\scripts\src\Release\benchmark_hotgym.exe : fatal error LNK1120: 1 unresolved externals 5>Done building project "benchmark_hotgym.vcxproj" -- FAILED. 8>------ Skipped Build: Project: hotgym, Configuration: Release x64 ------ 8>Project not selected to build for this solution configuration 6>Finished generating code 7>ConnectionsTest.cpp 6>mnist_sp.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\scripts\src\Release\mnist_sp.exe 6>Done building project "mnist_sp.vcxproj". 9>------ Skipped Build: Project: mnist, Configuration: Release x64 ------ 9>Project not selected to build for this solution configuration 7>HelloSPTPTest.cpp 7>SDRClassifierTest.cpp 7>SpatialPoolerTest.cpp 7>TemporalMemoryTest.cpp 7>ScalarEncoderTest.cpp 7>RandomDistributedScalarEncoderTest.cpp 7>CppRegionTest.cpp 7>HelloRegionTest.cpp 7>InputTest.cpp 7>LinkTest.cpp 7>NetworkTest.cpp 7>YAMLUtilsTest.cpp 7>WatcherTest.cpp 7>TopologyTest.cpp 7>ArrayTest.cpp 7>Compiling... 7>BasicTypeTest.cpp 7>CollectionTest.cpp 7>DimensionsTest.cpp 7>ScalarTest.cpp 7>ValueTest.cpp 7>DirectoryTest.cpp 7>EnvTest.cpp 7>OSTest.cpp 7>PathTest.cpp 7>TimerTest.cpp 7>RegionTestUtilities.cpp 7>SPRegionTest.cpp 7>c:\users\leonard\documents\htm.core\src\test\unit\regions\spregiontest.cpp(356): warning C4305: 'argument': truncation from 'double' to 'htm::Real32' 7>TMRegionTest.cpp 7>VectorFileTest.cpp 7>ExceptionTest.cpp 7>SdrTest.cpp 7>GroupByTest.cpp 7>MovingAverageTest.cpp 7>RandomTest.cpp 7>VectorHelpersTest.cpp 7>Compiling... 7>SdrMetricsTest.cpp 7>HelloSPTP.cpp 7>gtest.lib(gtest-all.obj) : fatal error LNK1112: module machine type 'x86' conflicts with target machine type 'x64' 7>Done building project "unit_tests.vcxproj" -- FAILED. 10>------ Build started: Project: ALL_BUILD, Configuration: Release x64 ------ 11>------ Skipped Build: Project: tests_all, Configuration: Release x64 ------ 11>Project not selected to build for this solution configuration 10>Building Custom Rule C:/Users/Leonard/Documents/htm.core/CMakeLists.txt 10>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/CMakeFiles/generate.stamp is up-to-date. 12>------ Skipped Build: Project: INSTALL, Configuration: Release x64 ------ 12>Project not selected to build for this solution configuration 13>------ Skipped Build: Project: PACKAGE, Configuration: Release x64 ------ 13>Project not selected to build for this solution configuration ========== Build: 6 succeeded, 2 failed, 0 up-to-date, 5 skipped ========== '

As I don't know C++ and can't use MSVC thus I am unable to produce an explanation on this problem. Could someone help me fix or avoid this problem? Thank is advance!

breznak commented 5 years ago

Hi, thanks for the report! I'm CCing @dkeeney who is running a MS box, he'll know better with MSVC.

6>Generating code 5> Creating library C:/Users/Leonard/Documents/htm.core/build/scripts/src/Release/benchmark_hotgym.lib and object C:/Users/Leonard/Documents/htm.core/build/scripts/src/Release/benchmark_hotgym.exp 5>htm_core.lib(RandomDistributedScalarEncoder.obj) : error LNK2001: unresolved external symbol "unsigned int __cdecl htm::MurmurHash3_x86_32(void const *,int,unsigned int)" (?MurmurHash3_x86_32@htm@@YAIPEBXHI@Z) 5>C:\Users\Leonard\Documents\htm.core\build\scripts\src\Release\benchmark_hotgym.exe : fatal error LNK1120: 1 unresolved externals 5>Done building project "benchmark_hotgym.vcxproj" -- FAILED.

and

7>gtest.lib(gtest-all.obj) : fatal error LNK1112: module machine type 'x86' conflicts with target machine type 'x64' 7>Done building project "unit_tests.vcxproj" -- FAILED.

First of all, can you try a clean build? (delete everything and try again?) At a first glance it seems your system is doing a "x86" (32bit) build, while it's on x64 (64b)

breznak commented 5 years ago

@Leonardbcm can you try the "manual" installation? python setup.py install ? OR the cmake ../.. && make -j && make install //you'd find more details in the Readme.

dkeeney commented 5 years ago

Hi @Leonardbcm thanks for reporting this. Somehow we managed to get some sort of error into the master build. I will track it down.

dkeeney commented 5 years ago

Ok, here is the problem: mnist_utils.hpp(89

/*!
 * \brief Binarize each sub range inside the given range
 * \param values The collection of ranges to binarize
 * \param threshold The threshold for binarization
 */
template <typename Container>
void binarize_each(Container& values, double threshold = 30.0) {
    for (auto& vec : values) {
        for (auto& v : vec) {
            v = v > threshold ? 1.0 : 0.0;
        }
    }
}

If this function is used with a Container which contains anything other than a double this will cause a warning because of type miss-match. If warnings are considered errors it all dies. In this case it is being passed a container of uint8_t.

This is used only in MNIST_SP.cpp line 106 where it is using a dataset of type uint8_t This binarize_each( ) function is not one of ours, its part of the mnist package. (and has an MIT licence I might add).

@breznak or @ctrl-z-9000-times I think there was some discussions about this previously. Can we make the data set a double?

breznak commented 5 years ago

Thanks for figuring this, @dkeeney ! I'm surprised we didn't observe this err in our Windows CI?

is binarize_each( ) function is not one of ours, its part of the mnist package.

@Leonardbcm if you care, would be nice reporting this error also to the upstream mnist_"something" package. (sorry, I;m not sure the name, just it's not the official MNIST dataset)

Can we make the data set a double?

definitely we can use any format needed, it's compared to a double threshold, so it makes sense. What I'm not sure, if the data is stored in a binary format, so we might need to read is as described? But if reading the data into a vector works, we're all :+1:

dkeeney commented 5 years ago

I'm surprised we didn't observe this err in our Windows CI?

I think I know why. We are pulling this code from mnist master repository. Someone there may have changed something and broke us. That is the risk we take using the master.

dkeeney commented 5 years ago

But if reading the data into a vector works, we're all set.

Just changing the types on the container does not compile...breaks elsewhere. Any changes more than that and I would be in danger of causing it to do something that was not intended. I think @ctrl-z-9000-times needs to take a look at MNIST_SP.cpp. line 69 and 105

I think the intent of mnist in creating the templated Container was to allow the vector to be of any type but the binarize_each( ) function needs some work to allow that to happen.

breznak commented 5 years ago

Someone there may have changed something and broke us. That is the risk we take using the master.

ok, this is not the case, latest commit there is since Feb 2019, 5mo ago. Can this be something stricter with the new MSVC?

If this function is used with a Container which contains anything other than a double this will cause a warning because of type miss-match. If warnings are considered errors it all dies. In this case it is being passed a container of uint8_t.

first thing would be a PR or an issue to upstream, they've been pretty responsive when I was setting up the library. As a workaround I'd suggest removing Werror from the MNIST cmake executable by adding Wall after to override that

leonardtschora commented 5 years ago

@Leonardbcm can you try the "manual" installation? python setup.py install ? OR the cmake ../.. && make -j && make install //you'd find more details in the Readme.

Hi and thanks for your help! I deleted the entiere htm.core folder, then pulled again. I get this log : `Python version: 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)]

-- Building for: Visual Studio 15 2017 -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- The CXX compiler identification is MSVC 19.16.27032.1 -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- REPOSITORY_DIR = C:/Users/Leonard/Documents/htm.core -- CMAKE_BINARY_DIR = C:/Users/Leonard/Documents/htm.core/build/scripts -- CMAKE_BUILD_TYPE = Release -- CMAKE_INSTALL_PREFIX = C:/Users/Leonard/Documents/htm.core/build/Release -- FORCE_CPP11 = OFF -- FORCE_BOOST = OFF -- BINDING_BUILD = Python3 -- Environment var CXX =

-- CMAKE_CXX_COMPILER_ID= MSVC -- CMAKE_CXX_COMPILER_VERSION=19.16.27032.1 -- CMAKE_CXX_COMPILER = C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- CMAKE_CXX_STANDARD = 17 -- PLATFORM = windows -- BITNESS = 32 -- NEEDS_BOOST = OFF -- INTERNAL_CXX_FLAGS = /permissive-;/W3;/Gm-;/EHsc;/FC;/nologo;/Zc:__cplusplus;$<$:/O2;/Oi;/Gy;/GL;/MD>;$<$:/Ob0;/Od;/Zi;/sdl;/RTC1;/MDd> -- INTERNAL_LINKER_FLAGS= -MACHINE:X86;-NOLOGO;-NODEFAULTLIB:LIBCMT;-ignore:4099;$<$:-LTCG> -- INTERNAL_LINKER_FLAGS_STR= -MACHINE:X86 -NOLOGO -NODEFAULTLIB:LIBCMT -ignore:4099 $<$:-LTCG> -- COMMON_COMPILER_DEFINITIONS_STR=_CONSOLE _MBCS NTA_OS_WINDOWS NTA_COMPILER_MSVC NTA_ARCH_32 _CRT_SECURE_NO_WARNINGS _SCL_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE _SCL_SECURE_NO_DEPRECATE BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE BOOST_ALL_NO_LIB BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS BOOST_NO_WREGEX _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING VC_EXTRALEAN WIN32_LEAN_AND_MEAN NOMINMAX NOGDI $<$:NTA_ASSERTIONS_ON> -- COMMON_OS_LIBS = oldnames.lib;psapi.lib;ws2_32.lib -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- The CXX compiler identification is MSVC 19.16.27032.1 -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- external import -- REPOSITORY_DIR = C:/Users/Leonard/Documents/htm.core -- CMAKE_BINARY_DIR = C:/Users/Leonard/Documents/htm.core/build/ThirdParty -- CMAKE_INSTALL_PREFIX = C:/Users/Leonard/Documents/htm.core/build/ThirdParty -- CMAKE_BUILD_TYPE = Release -- EXTERNAL_CXX_FLAGS = /EHsc;$<$:/MD>;$<$:/MDd> -- NEEDS_BOOST = OFF -- BINDING_BUILD = Python3 -- common_INCLUDE_DIR= C:/Users/Leonard/Documents/htm.core/external/common -- common_LIBRARIES= C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> -- C:/Users/Leonard/Documents/htm.core/build/ThirdParty/share/yaml-cpp.zip -- Obtaining yaml-cpp from https://github.com/jbeder/yaml-cpp/archive/master.zip -- The C compiler identification is MSVC 19.16.27032.1 -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- obtaining Eigen -- Obtaining gtest -- Found PythonInterp: C:/Users/Leonard/AppData/Local/Programs/Python/Python37/python.exe (found version "3.7.2") -- Looking for pthread.h -- Looking for pthread.h - not found -- Found Threads: TRUE -- obtaining PyBind11 -- obtaining MNIST data -- Downloading/updating mnist -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- Configuring done -- Generating done -- Build files have been written to: C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 pour .NET Framework Copyright (C) Microsoft Corporation. Tous droits r�serv�s.

Checking Build System CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeFiles/generate.stamp is up-to-date. Creating directories for 'mnist-download' Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeFiles/generate.stamp is up-to-date. Performing download step (download, verify and extract) for 'mnist-download' -- Downloading... dst='C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/mnist-download-prefix/src/master.zip' timeout='none' -- Using src='https://github.com/wichtounet/mnist/archive/master.zip' -- Downloading... done -- extracting... src='C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/mnist-download-prefix/src/master.zip' dst='C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src' -- extracting... [tar xfz] -- extracting... [analysis] -- extracting... [rename] -- extracting... [clean up] -- extracting... done No skip-update step for 'mnist-download' No patch step for 'mnist-download' No configure step for 'mnist-download' No build step for 'mnist-download' No install step for 'mnist-download' No test step for 'mnist-download' Completed 'mnist-download' Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeFiles/generate.stamp is up-to-date. -- obtaining Cereal -- Configuring done -- Generating done -- Build files have been written to: C:/Users/Leonard/Documents/htm.core/build/ThirdParty Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 pour .NET Framework Copyright (C) Microsoft Corporation. Tous droits r�serv�s.

Checking Build System CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-build/CMakeFiles/generate.stamp is up-to-date. Building Custom Rule C:/Users/Leonard/Documents/htm.core/external/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. MurmurHash3.cpp common.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\Release\common.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. gtest-all.cc gtest.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Release\gtest.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. gtest_main.cc gtest_main.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Release\gtest_main.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src/example/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-build/CMakeFiles/generate.stamp is up-to-date. main.cpp c:\users\leonard\documents\htm.core\build\thirdparty\mnist_data\mnist-src\include\mnist\mnist_reader_common.hpp(46): warning C4244: 'initializing': conversion from 'std::streamoff' to 'unsigned int', possible loss of data [C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\mnist_example.vcxproj] mnist_example.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\Release\mnist_example.exe Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build/CMakeFiles/generate.stamp is up-to-date. binary.cpp convert.cpp directives.cpp emit.cpp emitfromevents.cpp emitter.cpp emitterstate.cpp emitterutils.cpp exceptions.cpp exp.cpp memory.cpp node.cpp node_data.cpp nodebuilder.cpp nodeevents.cpp null.cpp ostream_wrapper.cpp parse.cpp parser.cpp regex_yaml.cpp Generating Code... Compiling... scanner.cpp scanscalar.cpp scantag.cpp scantoken.cpp simplekey.cpp singledocparser.cpp stream.cpp tag.cpp Generating Code... yaml-cpp.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\yaml-cpp\yaml-cpp-build\Release\libyaml-cppmd.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/external/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 pour .NET Framework Copyright (C) Microsoft Corporation. Tous droits r�serv�s.

Checking Build System CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-build/CMakeFiles/generate.stamp is up-to-date. Building Custom Rule C:/Users/Leonard/Documents/htm.core/external/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. MurmurHash3.cpp common.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\Debug\common.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. gtest-all.cc gtest.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Debug\gtestd.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. gtest_main.cc gtest_main.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Debug\gtest_maind.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src/example/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-build/CMakeFiles/generate.stamp is up-to-date. main.cpp c:\users\leonard\documents\htm.core\build\thirdparty\mnist_data\mnist-src\include\mnist\mnist_reader_common.hpp(46): warning C4244: 'initializing': conversion from 'std::streamoff' to 'unsigned int', possible loss of data [C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\mnist_example.vcxproj] mnist_example.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\Debug\mnist_example.exe Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build/CMakeFiles/generate.stamp is up-to-date. binary.cpp convert.cpp directives.cpp emit.cpp emitfromevents.cpp emitter.cpp emitterstate.cpp emitterutils.cpp exceptions.cpp exp.cpp memory.cpp node.cpp node_data.cpp nodebuilder.cpp nodeevents.cpp null.cpp ostream_wrapper.cpp parse.cpp parser.cpp regex_yaml.cpp Generating Code... Compiling... scanner.cpp scanscalar.cpp scantag.cpp scantoken.cpp simplekey.cpp singledocparser.cpp stream.cpp tag.cpp Generating Code... yaml-cpp.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\yaml-cpp\yaml-cpp-build\Debug\libyaml-cppmdd.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/external/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. -- Results from external build: -- common_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/external/common -- common_LIBRARIES = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> -- yaml-cpp_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-src/include -- yaml-cpp_LIBRARIES = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$<$:/Release/libyaml-cppmd.lib>$<$:/Debug/libyaml-cppmdd.lib> -- eigen_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/eigen/eigen-src -- gtest_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/include -- gtest_LIBRARIES = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/$<$:Release>$<$:Debug>/gtest$<$:d>.lib -- pybind11_SOURCE_DIR = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/pybind11/pybind11-src -- pybind11_BINARY_DIR = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/pybind11/pybind11-build -- mnist_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src/include -- mnist_SOURCE_DIR = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src -- cereal_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/cereal/cereal-src/include -- Configuring htm_core src -- MERGE_STATIC_LIBRARIES LIB_TARGET=htm_core, STATIC_LIBS = htm_core_solo;C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$<$:/Release/libyaml-cppmd.lib>$<$:/Debug/libyaml-cppmdd.lib>;C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> -- MERGE_STATIC_LIBRARIES: htm_core_solo -- MERGE_STATIC_LIBRARIES: C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$<$:/Release/libyaml-cppmd.lib>$<$:/Debug/libyaml-cppmdd.lib> - non-target lib. -- MERGE_STATIC_LIBRARIES: C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> - non-target lib. -- Configuring htm_core tests -- Configuring Python interface -- Found PythonInterp: C:/Users/Leonard/AppData/Local/Programs/Python/Python37/python.exe (found version "3.7.2") CMake Error at build/ThirdParty/pybind11/pybind11-src/tools/FindPythonLibsNew.cmake:122 (message): Python config failure: Python is 64-bit, chosen compiler is 32-bit Call Stack (most recent call first): build/ThirdParty/pybind11/pybind11-src/tools/pybind11Tools.cmake:16 (find_package) build/ThirdParty/pybind11/pybind11-src/CMakeLists.txt:33 (include)

-- Configuring incomplete, errors occurred! See also "C:/Users/Leonard/Documents/htm.core/build/scripts/CMakeFiles/CMakeOutput.log". Traceback (most recent call last): File "setup.py", line 53, in

File "C:\Users\Leonard\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 263, in run_path pkg_name=pkg_name, script_name=fname) File "C:\Users\Leonard\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 96, in _run_module_code mod_name, mod_spec, pkg_name, script_name) File "C:\Users\Leonard\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "C:\Users\Leonard\Documents\htm.core\bindings\py\packaging\setup.py", line 224, in getExtensionFiles(platform) File "C:\Users\Leonard\Documents\htm.core\bindings\py\packaging\setup.py", line 178, in getExtensionFiles generateExtensions() File "C:\Users\Leonard\Documents\htm.core\bindings\py\packaging\setup.py", line 209, in generateExtensions subprocess.check_call(["cmake", PY_VER, REPO_DIR]) File "C:\Users\Leonard\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 347, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['cmake', '-DBINDING_BUILD=Python3', 'C:\Users\Leonard\Documents\htm.core']' returned non-zero exit status 1.`

It seems from the first lines : -- Building for: Visual Studio 15 2017 -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- The CXX compiler identification is MSVC 19.16.27032.1 -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works

that MSVC chose a x86 compiler as a default compiler. This strangely does not happend when I use startupMSVC.bat which produce (after re-deleting and cloning the whole code): `C:\Users\Leonard\Documents\htm.core>startupMSVC.bat HTM_BASE=C:\Users\Leonard\Documents\htm.core -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- The CXX compiler identification is MSVC 19.16.27032.1 -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- REPOSITORY_DIR = C:/Users/Leonard/Documents/htm.core -- CMAKE_BINARY_DIR = C:/Users/Leonard/Documents/htm.core/build/scripts -- CMAKE_BUILD_TYPE = Release -- CMAKE_INSTALL_PREFIX = C:/Users/Leonard/Documents/htm.core/build/Release -- FORCE_CPP11 = OFF -- FORCE_BOOST = OFF -- BINDING_BUILD = none -- Environment var CXX =

-- CMAKE_CXX_COMPILER_ID= MSVC -- CMAKE_CXX_COMPILER_VERSION=19.16.27032.1 -- CMAKE_CXX_COMPILER = C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe -- CMAKE_CXX_STANDARD = 17 -- PLATFORM = windows -- BITNESS = 64 -- NEEDS_BOOST = OFF -- INTERNAL_CXX_FLAGS = /permissive-;/W3;/Gm-;/EHsc;/FC;/nologo;/Zc:__cplusplus;$<$:/O2;/Oi;/Gy;/GL;/MD>;$<$:/Ob0;/Od;/Zi;/sdl;/RTC1;/MDd> -- INTERNAL_LINKER_FLAGS= -MACHINE:X64;-NOLOGO;-NODEFAULTLIB:LIBCMT;-ignore:4099;$<$:-LTCG> -- INTERNAL_LINKER_FLAGS_STR= -MACHINE:X64 -NOLOGO -NODEFAULTLIB:LIBCMT -ignore:4099 $<$:-LTCG> -- COMMON_COMPILER_DEFINITIONS_STR=_CONSOLE _MBCS NTA_OS_WINDOWS NTA_COMPILER_MSVC NTA_ARCH_64 _CRT_SECURE_NO_WARNINGS _SCL_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE _SCL_SECURE_NO_DEPRECATE BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE BOOST_ALL_NO_LIB BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS BOOST_NO_WREGEX _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING VC_EXTRALEAN WIN32_LEAN_AND_MEAN NOMINMAX NOGDI $<$:NTA_ASSERTIONS_ON> -- COMMON_OS_LIBS = oldnames.lib;psapi.lib;ws2_32.lib -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- The CXX compiler identification is MSVC 19.16.27032.1 -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- external import -- REPOSITORY_DIR = C:/Users/Leonard/Documents/htm.core -- CMAKE_BINARY_DIR = C:/Users/Leonard/Documents/htm.core/build/ThirdParty -- CMAKE_INSTALL_PREFIX = C:/Users/Leonard/Documents/htm.core/build/ThirdParty -- CMAKE_BUILD_TYPE = Release -- EXTERNAL_CXX_FLAGS = /EHsc;$<$:/MD>;$<$:/MDd> -- NEEDS_BOOST = OFF -- BINDING_BUILD = none -- common_INCLUDE_DIR= C:/Users/Leonard/Documents/htm.core/external/common -- common_LIBRARIES= C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> -- C:/Users/Leonard/Documents/htm.core/build/ThirdParty/share/yaml-cpp.zip -- Obtaining yaml-cpp from https://github.com/jbeder/yaml-cpp/archive/master.zip -- The C compiler identification is MSVC 19.16.27032.1 -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- obtaining Eigen -- Obtaining gtest -- Found PythonInterp: C:/Users/Leonard/AppData/Local/Programs/Python/Python37/python.exe (found version "3.7.2") -- Looking for pthread.h -- Looking for pthread.h - not found -- Found Threads: TRUE -- obtaining MNIST data -- Downloading/updating mnist -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- Configuring done -- Generating done -- Build files have been written to: C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 pour .NET Framework Copyright (C) Microsoft Corporation. Tous droits r�serv�s.

Checking Build System CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeFiles/generate.stamp is up-to-date. Creating directories for 'mnist-download' Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeFiles/generate.stamp is up-to-date. Performing download step (download, verify and extract) for 'mnist-download' -- Downloading... dst='C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/mnist-download-prefix/src/master.zip' timeout='none' -- Using src='https://github.com/wichtounet/mnist/archive/master.zip' -- Downloading... done -- extracting... src='C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/mnist-download-prefix/src/master.zip' dst='C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src' -- extracting... [tar xfz] -- extracting... [analysis] -- extracting... [rename] -- extracting... [clean up] -- extracting... done No skip-update step for 'mnist-download' No patch step for 'mnist-download' No configure step for 'mnist-download' No build step for 'mnist-download' No install step for 'mnist-download' No test step for 'mnist-download' Completed 'mnist-download' Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeFiles/generate.stamp is up-to-date. -- obtaining Cereal -- Configuring done -- Generating done -- Build files have been written to: C:/Users/Leonard/Documents/htm.core/build/ThirdParty Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 pour .NET Framework Copyright (C) Microsoft Corporation. Tous droits r�serv�s.

Checking Build System CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-build/CMakeFiles/generate.stamp is up-to-date. Building Custom Rule C:/Users/Leonard/Documents/htm.core/external/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. MurmurHash3.cpp common.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\Release\common.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. gtest-all.cc gtest.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Release\gtest.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. gtest_main.cc gtest_main.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Release\gtest_main.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src/example/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-build/CMakeFiles/generate.stamp is up-to-date. main.cpp c:\users\leonard\documents\htm.core\build\thirdparty\mnist_data\mnist-src\include\mnist\mnist_reader_common.hpp(46): warning C4244: 'initializing': conversion from 'std::streamoff' to 'unsigned int', possible loss of data [C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\mnist_example.vcxproj] mnist_example.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\Release\mnist_example.exe Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build/CMakeFiles/generate.stamp is up-to-date. binary.cpp convert.cpp directives.cpp emit.cpp emitfromevents.cpp emitter.cpp emitterstate.cpp emitterutils.cpp exceptions.cpp exp.cpp memory.cpp node.cpp node_data.cpp nodebuilder.cpp nodeevents.cpp null.cpp ostream_wrapper.cpp parse.cpp parser.cpp regex_yaml.cpp Generating Code... Compiling... scanner.cpp scanscalar.cpp scantag.cpp scantoken.cpp simplekey.cpp singledocparser.cpp stream.cpp tag.cpp Generating Code... yaml-cpp.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\yaml-cpp\yaml-cpp-build\Release\libyaml-cppmd.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/external/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 pour .NET Framework Copyright (C) Microsoft Corporation. Tous droits r�serv�s.

Checking Build System CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-build/CMakeFiles/generate.stamp is up-to-date. Building Custom Rule C:/Users/Leonard/Documents/htm.core/external/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. MurmurHash3.cpp common.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\Debug\common.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. gtest-all.cc gtest.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Debug\gtestd.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. gtest_main.cc gtest_main.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Debug\gtest_maind.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src/example/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-build/CMakeFiles/generate.stamp is up-to-date. main.cpp c:\users\leonard\documents\htm.core\build\thirdparty\mnist_data\mnist-src\include\mnist\mnist_reader_common.hpp(46): warning C4244: 'initializing': conversion from 'std::streamoff' to 'unsigned int', possible loss of data [C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\mnist_example.vcxproj] mnist_example.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\Debug\mnist_example.exe Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build/CMakeFiles/generate.stamp is up-to-date. binary.cpp convert.cpp directives.cpp emit.cpp emitfromevents.cpp emitter.cpp emitterstate.cpp emitterutils.cpp exceptions.cpp exp.cpp memory.cpp node.cpp node_data.cpp nodebuilder.cpp nodeevents.cpp null.cpp ostream_wrapper.cpp parse.cpp parser.cpp regex_yaml.cpp Generating Code... Compiling... scanner.cpp scanscalar.cpp scantag.cpp scantoken.cpp simplekey.cpp singledocparser.cpp stream.cpp tag.cpp Generating Code... yaml-cpp.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\yaml-cpp\yaml-cpp-build\Debug\libyaml-cppmdd.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/external/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. -- Results from external build: -- common_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/external/common -- common_LIBRARIES = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> -- yaml-cpp_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-src/include -- yaml-cpp_LIBRARIES = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$<$:/Release/libyaml-cppmd.lib>$<$:/Debug/libyaml-cppmdd.lib> -- eigen_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/eigen/eigen-src -- gtest_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/include -- gtest_LIBRARIES = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/$<$:Release>$<$:Debug>/gtest$<$:d>.lib -- mnist_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src/include -- mnist_SOURCE_DIR = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src -- cereal_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/cereal/cereal-src/include -- Configuring htm_core src -- MERGE_STATIC_LIBRARIES LIB_TARGET=htm_core, STATIC_LIBS = htm_core_solo;C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$<$:/Release/libyaml-cppmd.lib>$<$:/Debug/libyaml-cppmdd.lib>;C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> -- MERGE_STATIC_LIBRARIES: htm_core_solo -- MERGE_STATIC_LIBRARIES: C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$<$:/Release/libyaml-cppmd.lib>$<$:/Debug/libyaml-cppmdd.lib> - non-target lib. -- MERGE_STATIC_LIBRARIES: C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> - non-target lib. -- Configuring htm_core tests -- Configuring done -- Generating done -- Build files have been written to: C:/Users/Leonard/Documents/htm.core/build/scripts " " You can now start Visual Studio using solution file C:\Users\Leonard\Documents\htm.core\build\scripts\htm_core.sln Dont forget to set your default Startup Project to unit_tests. Press any key to start Visual Studio`

and the first lines :

C:\Users\Leonard\Documents\htm.core>startupMSVC.bat HTM_BASE=C:\Users\Leonard\Documents\htm.core -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- The CXX compiler identification is MSVC 19.16.27032.1 -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe -- works

are different than the "manual" build using setup.py. Here it looks like the good compiler has been chosen.

However, this does not fix the problem since I still get this log while building the entiere project in MSVC:

1>------ Build started: Project: ZERO_CHECK, Configuration: Release x64 ------ 1>Checking Build System 1>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/CMakeFiles/generate.stamp is up-to-date. 1>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. 1>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/test/CMakeFiles/generate.stamp is up-to-date. 2>------ Build started: Project: LibrarySource, Configuration: Release x64 ------ 2>Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/CMakeLists.txt 2>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. 2>Anomaly.cpp 2>AnomalyLikelihood.cpp 2>Connections.cpp 2>SDRClassifier.cpp 2>SpatialPooler.cpp 2>TemporalMemory.cpp 2>c:\users\leonard\documents\htm.core\src\htm\algorithms\temporalmemory.cpp(223): warning C4267: 'argument': conversion from 'size_t' to 'htm::UInt', possible loss of data 2>ScalarEncoder.cpp 2>RandomDistributedScalarEncoder.cpp 2>Input.cpp 2>Link.cpp 2>Network.cpp 2>NuPIC.cpp 2>Output.cpp 2>Region.cpp 2>RegionImpl.cpp 2>RegionImplFactory.cpp 2>Spec.cpp 2>YAMLUtils.cpp 2>Watcher.cpp 2>ArrayBase.cpp 2>Compiling... 2>BasicType.cpp 2>Scalar.cpp 2>Value.cpp 2>Directory.cpp 2>Env.cpp 2>OS.cpp 2>OSUnix.cpp 2>OSWin.cpp 2>Path.cpp 2>Timer.cpp 2>ScalarSensor.cpp 2>SPRegion.cpp 2>TestNode.cpp 2>TMRegion.cpp 2>VectorFile.cpp 2>VectorFileEffector.cpp 2>VectorFileSensor.cpp 2>Sdr.cpp 2>LoggingException.cpp 2>LogItem.cpp 2>Compiling... 2>MovingAverage.cpp 2>Random.cpp 2>SdrMetrics.cpp 2>StlIo.cpp 2>Topology.cpp 2>LINK : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 2>LibrarySource.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\scripts\src\LibrarySource.dir\Release\LibrarySource.lib 2>Done building project "LibrarySource.vcxproj". 3>------ Build started: Project: htm_core_solo, Configuration: Release x64 ------ 3>Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/CMakeLists.txt 3>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. 3>LINK : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 3>htm_core_solo.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\scripts\src\Release\htm_core_solo.lib 4>------ Build started: Project: htm_core, Configuration: Release x64 ------ 4>Generating htm_core_dummy.c++ 4>Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/CMakeLists.txt 4>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. 4>htm_core_dummy.c++ 4>LINK : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 4>htm_core.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\scripts\src\Release\htm_core.lib 4>Combining $^<TARGET_FILE:htm_core^> for target htm_core from $^<TARGET_FILE:htm_core_solo^>;C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$^<$^<CONFIG:Release^>:/Release/libyaml-cppmd.lib^>$^<$^<CONFIG:Debug^>:/Debug/libyaml-cppmdd.lib^>;C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$^<$^<CONFIG:Release^>:Release/common.lib^>$^<$^<CONFIG:Debug^>:Debug/common.lib^>. 4>Microsoft (R) Library Manager Version 14.16.27032.1 4>Copyright (C) Microsoft Corporation. All rights reserved. 4> 4>htm_core_solo.lib(Anomaly.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 4>Microsoft (R) Library Manager Version 14.16.27032.1 4>Copyright (C) Microsoft Corporation. All rights reserved. 4> 5>------ Build started: Project: benchmark_hotgym, Configuration: Release x64 ------ 6>------ Build started: Project: mnist_sp, Configuration: Release x64 ------ 7>------ Build started: Project: unit_tests, Configuration: Release x64 ------ 5>Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/CMakeLists.txt 5>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. 5>Hotgym.cpp 6>Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/CMakeLists.txt 6>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. 7>Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/test/CMakeLists.txt 7>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/test/CMakeFiles/generate.stamp is up-to-date. 6>MNIST_SP.cpp 7>UnitTestMain.cpp 5>HelloSPTP.cpp 7>AnomalyTest.cpp 6>c:\users\leonard\documents\htm.core\build\thirdparty\mnist_data\mnist-src\include\mnist\mnist_utils.hpp(29): warning C4244: '=': conversion from 'double' to 'unsigned char', possible loss of data 6>c:\users\leonard\documents\htm.core\build\thirdparty\mnist_data\mnist-src\include\mnist\mnist_utils.hpp(89): note: see reference to function template instantiation 'void mnist::binarize_each<std::vector<Image,std::allocator<_Ty>>>(Container &,double)' being compiled 6> with 6> [ 6> Image=std::vector<uint8_t,std::allocator<uint8_t>>, 6> _Ty=std::vector<uint8_t,std::allocator<uint8_t>>, 6> Container=std::vector<std::vector<uint8_t,std::allocator<uint8_t>>,std::allocator<std::vector<uint8_t,std::allocator<uint8_t>>>> 6> ] 6>c:\users\leonard\documents\htm.core\src\examples\mnist\mnist_sp.cpp(106): note: see reference to function template instantiation 'void mnist::binarize_dataset<mnist::MNIST_dataset<std::vector,std::vector<uint8_t,std::allocator<_Ty>>,uint8_t>>(Dataset &)' being compiled 6> with 6> [ 6> _Ty=uint8_t, 6> Dataset=mnist::MNIST_dataset<std::vector,std::vector<uint8_t,std::allocator<uint8_t>>,uint8_t> 6> ] 6>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\filesystem(2392): note: see reference to class template instantiation 'std::chrono::time_point<std::filesystem::_File_time_clock,std::filesystem::_File_time_clock::duration>' being compiled 6>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\type_traits(616): note: see reference to class template instantiation 'std::basic_string_view<wchar_t,std::char_traits<wchar_t>>' being compiled 6>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\xstring(2122): note: see reference to class template instantiation 'std::is_convertible<const _StringViewIsh &,std::basic_string_view<wchar_t,std::char_traits<wchar_t>>>' being compiled 6> with 6> [ 6> _StringViewIsh=const wchar_t * 6> ] 6>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\xstring(2122): note: see reference to variable template 'const bool conjunction_v<std::is_convertible<wchar_t const * const &,std::basic_string_view<wchar_t,std::char_traits<wchar_t> > >,std::negation<std::is_convertible<wchar_t const * const &,wchar_t const *> > >' being compiled 6>c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\xstring(2281): note: see reference to alias template instantiation 'std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>::_Is_string_view_ish<_StringViewIsh>' being compiled 6> with 6> [ 6> _StringViewIsh=const wchar_t * 6> ] 7>AnomalyLikelihoodTest.cpp 7>ConnectionsPerformanceTest.cpp 6> Creating library C:/Users/Leonard/Documents/htm.core/build/scripts/src/Release/mnist_sp.lib and object C:/Users/Leonard/Documents/htm.core/build/scripts/src/Release/mnist_sp.exp 6>Generating code 5> Creating library C:/Users/Leonard/Documents/htm.core/build/scripts/src/Release/benchmark_hotgym.lib and object C:/Users/Leonard/Documents/htm.core/build/scripts/src/Release/benchmark_hotgym.exp 5>htm_core.lib(RandomDistributedScalarEncoder.obj) : error LNK2001: unresolved external symbol "unsigned int __cdecl htm::MurmurHash3_x86_32(void const *,int,unsigned int)" (?MurmurHash3_x86_32@htm@@YAIPEBXHI@Z) 5>C:\Users\Leonard\Documents\htm.core\build\scripts\src\Release\benchmark_hotgym.exe : fatal error LNK1120: 1 unresolved externals 5>Done building project "benchmark_hotgym.vcxproj" -- FAILED. 8>------ Skipped Build: Project: hotgym, Configuration: Release x64 ------ 8>Project not selected to build for this solution configuration 7>ConnectionsTest.cpp 6>Finished generating code 6>mnist_sp.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\scripts\src\Release\mnist_sp.exe 6>Done building project "mnist_sp.vcxproj". 9>------ Skipped Build: Project: mnist, Configuration: Release x64 ------ 9>Project not selected to build for this solution configuration 7>HelloSPTPTest.cpp 7>SDRClassifierTest.cpp 7>SpatialPoolerTest.cpp 7>TemporalMemoryTest.cpp 7>ScalarEncoderTest.cpp 7>RandomDistributedScalarEncoderTest.cpp 7>CppRegionTest.cpp 7>HelloRegionTest.cpp 7>InputTest.cpp 7>LinkTest.cpp 7>NetworkTest.cpp 7>YAMLUtilsTest.cpp 7>WatcherTest.cpp 7>TopologyTest.cpp 7>ArrayTest.cpp 7>Compiling... 7>BasicTypeTest.cpp 7>CollectionTest.cpp 7>DimensionsTest.cpp 7>ScalarTest.cpp 7>ValueTest.cpp 7>DirectoryTest.cpp 7>EnvTest.cpp 7>OSTest.cpp 7>PathTest.cpp 7>TimerTest.cpp 7>RegionTestUtilities.cpp 7>SPRegionTest.cpp 7>c:\users\leonard\documents\htm.core\src\test\unit\regions\spregiontest.cpp(356): warning C4305: 'argument': truncation from 'double' to 'htm::Real32' 7>TMRegionTest.cpp 7>VectorFileTest.cpp 7>ExceptionTest.cpp 7>SdrTest.cpp 7>GroupByTest.cpp 7>MovingAverageTest.cpp 7>RandomTest.cpp 7>VectorHelpersTest.cpp 7>Compiling... 7>SdrMetricsTest.cpp 7>HelloSPTP.cpp 7>gtest.lib(gtest-all.obj) : fatal error LNK1112: module machine type 'x86' conflicts with target machine type 'x64' 7>Done building project "unit_tests.vcxproj" -- FAILED. 10>------ Build started: Project: ALL_BUILD, Configuration: Release x64 ------ 11>------ Skipped Build: Project: tests_all, Configuration: Release x64 ------ 11>Project not selected to build for this solution configuration 10>Building Custom Rule C:/Users/Leonard/Documents/htm.core/CMakeLists.txt 10>CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/CMakeFiles/generate.stamp is up-to-date. 12>------ Skipped Build: Project: INSTALL, Configuration: Release x64 ------ 12>Project not selected to build for this solution configuration 13>------ Skipped Build: Project: PACKAGE, Configuration: Release x64 ------ 13>Project not selected to build for this solution configuration ========== Build: 6 succeeded, 2 failed, 0 up-to-date, 5 skipped ==========

Thanks.

breznak commented 5 years ago

-- BITNESS = 32

for some reason, the c++ is detecting 32bit for you, which I guess is wrong and causes later problems with linking. just to verify, can you override the bitness for cmake? something like cmake -DBITNESS=64 -DCMAKE_BUILD_TYPE=Release ../..

leonardtschora commented 5 years ago

I am going to try this, however, this -- BITNESS = 32 only happens while using python setup.py. While building with startupMSVC, I have -- BITNESS = 64.

Moreover, I never used Cmake, what command line/arguments should I use after cmake -DBITNESS=64 -DCMAKE_BUILD_TYPE=Release ../..?

breznak commented 5 years ago

Moreover, I never used Cmake, what command line/arguments should I use after cmake -DBITNESS=64 -DCMAKE_BUILD_TYPE=Release ../..?

nothing, that's it. Assuming you're in REPO/build/scripts/ (the 2 folders can be created manually), the ../.. should point to the repo root REPO (where CMakeLists.txt is)

dkeeney commented 5 years ago

Hmmm, its interesting that it is choosing a 32bit compiler. Let me see if I can duplicate this.

breznak commented 5 years ago

Hmmm, its interesting that it is choosing a 32bit compiler.

@dkeeney are there even 32bit windows? My line of thought is if we shouldn't auto-assume 64b system, and only let 32bit with manual rewrite in cmake -DBITNESS=32 ?

leonardtschora commented 5 years ago

Moreover, I never used Cmake, what command line/arguments should I use after cmake -DBITNESS=64 -DCMAKE_BUILD_TYPE=Release ../..?

nothing, that's it. Assuming you're in REPO/build/scripts/ (the 2 folders can be created manually), the ../.. should point to the repo root REPO (where CMakeLists.txt is)

It seems to have worked well. Here are the logs : ` C:\Users\Leonard\Documents\htm.core\build\scripts>cmake -DBITNESS=64 -DCMAKE_BUILD_TYPE=Release ../.. -- Building for: Visual Studio 15 2017 -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- The CXX compiler identification is MSVC 19.16.27032.1 -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- REPOSITORY_DIR = C:/Users/Leonard/Documents/htm.core -- CMAKE_BINARY_DIR = C:/Users/Leonard/Documents/htm.core/build/scripts -- CMAKE_BUILD_TYPE = Release -- CMAKE_INSTALL_PREFIX = C:/Users/Leonard/Documents/htm.core/build/Release -- FORCE_CPP11 = OFF -- FORCE_BOOST = OFF -- BINDING_BUILD = none -- Environment var CXX =

-- CMAKE_CXX_COMPILER_ID= MSVC -- CMAKE_CXX_COMPILER_VERSION=19.16.27032.1 -- CMAKE_CXX_COMPILER = C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- CMAKE_CXX_STANDARD = 17 -- PLATFORM = windows -- BITNESS = 64 -- NEEDS_BOOST = OFF -- INTERNAL_CXX_FLAGS = /permissive-;/W3;/Gm-;/EHsc;/FC;/nologo;/Zc:__cplusplus;$<$:/O2;/Oi;/Gy;/GL;/MD>;$<$:/Ob0;/Od;/Zi;/sdl;/RTC1;/MDd> -- INTERNAL_LINKER_FLAGS= -MACHINE:X64;-NOLOGO;-NODEFAULTLIB:LIBCMT;-ignore:4099;$<$:-LTCG> -- INTERNAL_LINKER_FLAGS_STR= -MACHINE:X64 -NOLOGO -NODEFAULTLIB:LIBCMT -ignore:4099 $<$:-LTCG> -- COMMON_COMPILER_DEFINITIONS_STR=_CONSOLE _MBCS NTA_OS_WINDOWS NTA_COMPILER_MSVC NTA_ARCH_64 _CRT_SECURE_NO_WARNINGS _SCL_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE _SCL_SECURE_NO_DEPRECATE BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE BOOST_ALL_NO_LIB BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS BOOST_NO_WREGEX _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING VC_EXTRALEAN WIN32_LEAN_AND_MEAN NOMINMAX NOGDI $<$:NTA_ASSERTIONS_ON> -- COMMON_OS_LIBS = oldnames.lib;psapi.lib;ws2_32.lib -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- The CXX compiler identification is MSVC 19.16.27032.1 -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- external import -- REPOSITORY_DIR = C:/Users/Leonard/Documents/htm.core -- CMAKE_BINARY_DIR = C:/Users/Leonard/Documents/htm.core/build/ThirdParty -- CMAKE_INSTALL_PREFIX = C:/Users/Leonard/Documents/htm.core/build/ThirdParty -- CMAKE_BUILD_TYPE = Release -- EXTERNAL_CXX_FLAGS = /EHsc;$<$:/MD>;$<$:/MDd> -- NEEDS_BOOST = OFF -- BINDING_BUILD = none -- common_INCLUDE_DIR= C:/Users/Leonard/Documents/htm.core/external/common -- common_LIBRARIES= C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> -- C:/Users/Leonard/Documents/htm.core/build/ThirdParty/share/yaml-cpp.zip -- Obtaining yaml-cpp from https://github.com/jbeder/yaml-cpp/archive/master.zip -- The C compiler identification is MSVC 19.16.27032.1 -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- obtaining Eigen -- Obtaining gtest -- Found PythonInterp: C:/Users/Leonard/AppData/Local/Programs/Python/Python37/python.exe (found version "3.7.2") -- Looking for pthread.h -- Looking for pthread.h - not found -- Found Threads: TRUE -- obtaining MNIST data -- Downloading/updating mnist -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- Configuring done -- Generating done -- Build files have been written to: C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 pour .NET Framework Copyright (C) Microsoft Corporation. Tous droits r�serv�s.

Checking Build System CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeFiles/generate.stamp is up-to-date. Creating directories for 'mnist-download' Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeFiles/generate.stamp is up-to-date. Performing download step (download, verify and extract) for 'mnist-download' -- Downloading... dst='C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/mnist-download-prefix/src/master.zip' timeout='none' -- Using src='https://github.com/wichtounet/mnist/archive/master.zip' -- Downloading... done -- extracting... src='C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/mnist-download-prefix/src/master.zip' dst='C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src' -- extracting... [tar xfz] -- extracting... [analysis] -- extracting... [rename] -- extracting... [clean up] -- extracting... done No skip-update step for 'mnist-download' No patch step for 'mnist-download' No configure step for 'mnist-download' No build step for 'mnist-download' No install step for 'mnist-download' No test step for 'mnist-download' Completed 'mnist-download' Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download/CMakeFiles/generate.stamp is up-to-date. -- obtaining Cereal -- Configuring done -- Generating done -- Build files have been written to: C:/Users/Leonard/Documents/htm.core/build/ThirdParty Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 pour .NET Framework Copyright (C) Microsoft Corporation. Tous droits r�serv�s.

Checking Build System CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-build/CMakeFiles/generate.stamp is up-to-date. Building Custom Rule C:/Users/Leonard/Documents/htm.core/external/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. MurmurHash3.cpp common.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\Release\common.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. gtest-all.cc gtest.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Release\gtest.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. gtest_main.cc gtest_main.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Release\gtest_main.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src/example/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-build/CMakeFiles/generate.stamp is up-to-date. main.cpp c:\users\leonard\documents\htm.core\build\thirdparty\mnist_data\mnist-src\include\mnist\mnist_reader_common.hpp(46): warning C4244: 'initializing': conversion from 'std::streamoff' to 'unsigned int', possible loss of data [C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\mnist_example.vcxproj] mnist_example.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\Release\mnist_example.exe Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build/CMakeFiles/generate.stamp is up-to-date. binary.cpp convert.cpp directives.cpp emit.cpp emitfromevents.cpp emitter.cpp emitterstate.cpp emitterutils.cpp exceptions.cpp exp.cpp memory.cpp node.cpp node_data.cpp nodebuilder.cpp nodeevents.cpp null.cpp ostream_wrapper.cpp parse.cpp parser.cpp regex_yaml.cpp Generating Code... Compiling... scanner.cpp scanscalar.cpp scantag.cpp scantoken.cpp simplekey.cpp singledocparser.cpp stream.cpp tag.cpp Generating Code... yaml-cpp.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\yaml-cpp\yaml-cpp-build\Release\libyaml-cppmd.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/external/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 pour .NET Framework Copyright (C) Microsoft Corporation. Tous droits r�serv�s.

Checking Build System CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-build/CMakeFiles/generate.stamp is up-to-date. Building Custom Rule C:/Users/Leonard/Documents/htm.core/external/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. MurmurHash3.cpp common.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\Debug\common.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. gtest-all.cc gtest.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Debug\gtestd.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/CMakeFiles/generate.stamp is up-to-date. gtest_main.cc gtest_main.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Debug\gtest_maind.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src/example/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-build/CMakeFiles/generate.stamp is up-to-date. main.cpp c:\users\leonard\documents\htm.core\build\thirdparty\mnist_data\mnist-src\include\mnist\mnist_reader_common.hpp(46): warning C4244: 'initializing': conversion from 'std::streamoff' to 'unsigned int', possible loss of data [C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\mnist_example.vcxproj] mnist_example.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\Debug\mnist_example.exe Building Custom Rule C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build/CMakeFiles/generate.stamp is up-to-date. binary.cpp convert.cpp directives.cpp emit.cpp emitfromevents.cpp emitter.cpp emitterstate.cpp emitterutils.cpp exceptions.cpp exp.cpp memory.cpp node.cpp node_data.cpp nodebuilder.cpp nodeevents.cpp null.cpp ostream_wrapper.cpp parse.cpp parser.cpp regex_yaml.cpp Generating Code... Compiling... scanner.cpp scanscalar.cpp scantag.cpp scantoken.cpp simplekey.cpp singledocparser.cpp stream.cpp tag.cpp Generating Code... yaml-cpp.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\yaml-cpp\yaml-cpp-build\Debug\libyaml-cppmdd.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/external/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/CMakeFiles/generate.stamp is up-to-date. -- Results from external build: -- common_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/external/common -- common_LIBRARIES = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> -- yaml-cpp_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-src/include -- yaml-cpp_LIBRARIES = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$<$:/Release/libyaml-cppmd.lib>$<$:/Debug/libyaml-cppmdd.lib> -- eigen_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/eigen/eigen-src -- gtest_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/include -- gtest_LIBRARIES = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/$<$:Release>$<$:Debug>/gtest$<$:d>.lib -- mnist_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src/include -- mnist_SOURCE_DIR = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src -- cereal_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/cereal/cereal-src/include -- Configuring htm_core src -- MERGE_STATIC_LIBRARIES LIB_TARGET=htm_core, STATIC_LIBS = htm_core_solo;C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$<$:/Release/libyaml-cppmd.lib>$<$:/Debug/libyaml-cppmdd.lib>;C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> -- MERGE_STATIC_LIBRARIES: htm_core_solo -- MERGE_STATIC_LIBRARIES: C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$<$:/Release/libyaml-cppmd.lib>$<$:/Debug/libyaml-cppmdd.lib> - non-target lib. -- MERGE_STATIC_LIBRARIES: C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> - non-target lib. -- Configuring htm_core tests -- Configuring done -- Generating done -- Build files have been written to: C:/Users/Leonard/Documents/htm.core/build/scripts`

I am realy unfamiliar with C++, what is the next step for using the python bindings now? Thanks

dkeeney commented 5 years ago

are there even 32bit windows?

yes, there are 32bit windows machines. But we don't support 32 bit yet. Eventually we might want to support 32bit under Linux (Raspberry Pi for example) but that will take some work.

breznak commented 5 years ago

I am realy unfamiliar with C++, what is the next step for using the python bindings now? Thanks

@Leonardbcm now compile the c++:

make -j8 && make install

then build the py bindings

python ../../setup.py install

Does everything work then?

yes, there are 32bit windows machines. But we don't support 32 bit yet. Eventually we might want to support 32bit under Linux (Raspberry Pi

@dkeeney depends if you want to debug the issue, I think hardcoding 64b for now would be acceptable, and we can make instructions to define 32b on RPi etc..

dkeeney commented 5 years ago

On my machine, starting with the build/ folder deleted... when I use

python3 setup.py install --user --force

It builds using the 64bit compiler.

dkeeney commented 5 years ago

I think hardcoding 64b for now would be acceptable,

The setupMSVC.bat file already forces 64bit. If it is trying to run on 32bit hardware...or even running 32bit Windows then I do not think this will work. But @Leonardbcm seems to have a different problem. I assume he is running a 64bit Windows.

dkeeney commented 5 years ago

The compile error he was getting (and I got as well) in MNIST_SP.cpp is when compiling the examples. python3 setup.py install --user --force does not compile the examples. so it would not get this error.

dkeeney commented 5 years ago

I just tried using python3 setup.py install using the VS 2019 cmd and it correctly choose the X64. I will try a plain vanilla command prompt.

leonardtschora commented 5 years ago

@Leonardbcm now compile the c++:

make -j8 && make install

I'm very sorry but this does not work. It seems that the commande "make" isn't defined. I installed GnuWin32 which provide a make commande. Here what's happening: C:\Users\Leonard\Documents\htm.core\build\scripts>make -j8 && make install make: *** Pas de cibles spécifiées et aucun makefile n'a été trouvé. Arrêt.

Which is "No target specified and no makefile found. Stop" in en. Note that I'm using this command from build\scripts

But @Leonardbcm seems to have a different problem. I assume he is running a 64bit Windows.

Yes I am using a 64bit Windows.

breznak commented 5 years ago

ok, sorry, apparently Windows does not use "make", but calls cmake's OS-agnostic way:

Run build (i.e. make install), using portable, toolchain-agnostic mechanism to start it cmake.exe --build "%NUPIC_CORE%\build\scripts" --target install --config Release

you may need to adjust some of the variables to fit your settings. This is copied from appveyor.yaml, which is our CI for Windows, there you can find examples of how we are building on Windows.

dkeeney commented 5 years ago

... the commande "make" isn't defined.

Understand. make is not normally a part of Windows commands. So that was not going to help you. But even if you used the GnuWin32 make I don't think that would help. Wrong environment.

I tried using a plain vanilla command prompt using python3 setup.py install and it choose the X64bit compiler on my machine. So I do not understand what conditions caused it to assume a 32 bit architecture on your machine. Perhaps I should also modify setup.py to also force x64

In the mean time, @Leonardbcm if you were to be able to get an x64 build then the python libraries should work for you using 64bit python. So here is something to try...

Hopefully this will build completely as a 64 bit release build. Then you can use the libraries with Python3.

The problem with the error in the example code is a separate issue and should also be addressed.

breznak commented 5 years ago

even if you used the GnuWin32 make I don't think that would help.

isn't this the problem, that GnuWin (32bit) somehow messes with the libraries & paths cmake is detecting? @Leonardbcm can you uninstall the gnuwin32 env and try without it a clean build?

The problem with the error in the example code is a separate issue and should also be addressed

oh, so we still have that..

dkeeney commented 5 years ago

isn't this the problem, that GnuWin (32bit) somehow messes with the libraries & paths cmake is detecting?

I don't think so. I have that installed as well.

dkeeney commented 5 years ago

Hmmm, not positive that what I have is GnuWin..might be something like it. But if I remember correctly GnuWin32 needs to be ran in a special cmd prompt window to set the environment variables.

leonardtschora commented 5 years ago

In the mean time, @Leonardbcm if you were to be able to get an x64 build then the python libraries should work for you using 64bit python. So here is something to try...

  • Stop MSVC if it happens to be running
  • delete the build\ folder. (this starts everything from scratch)
  • double click startupMSVC.bat and let it run until it says "you can now start MSVC" and close the window. This should have set the bitness to 64 bit.
  • use a Command Prompt and cd to the top of the repository.
  • enter python3 setup.py install --user --force

Hopefully this will build completely as a 64 bit release build. Then you can use the libraries with Python3.

So I tried this solution. The startup MSVC worked fine, as always. Then I closed the terminal and used python setup.py install --force --user and still got the same error messages :

`C:\Users\Leonard\Documents\htm.core>python setup.py install --user --force setup.py: Calling C:\Users\Leonard\Documents\htm.core\bindings\py\packaging\setup.py

Python version: 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)]

-- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- REPOSITORY_DIR = C:/Users/Leonard/Documents/htm.core -- CMAKE_BINARY_DIR = C:/Users/Leonard/Documents/htm.core/build/scripts -- CMAKE_BUILD_TYPE = Release -- CMAKE_INSTALL_PREFIX = C:/Users/Leonard/Documents/htm.core/build/Release -- FORCE_CPP11 = OFF -- FORCE_BOOST = OFF -- BINDING_BUILD = Python3 -- Environment var CXX =

-- CMAKE_CXX_COMPILER_ID= MSVC -- CMAKE_CXX_COMPILER_VERSION=19.16.27032.1 -- CMAKE_CXX_COMPILER = C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe -- CMAKE_CXX_STANDARD = 17 -- PLATFORM = windows -- BITNESS = 64 -- NEEDS_BOOST = OFF -- INTERNAL_CXX_FLAGS = /permissive-;/W3;/Gm-;/EHsc;/FC;/nologo;/Zc:__cplusplus;$<$:/O2;/Oi;/Gy;/GL;/MD>;$<$:/Ob0;/Od;/Zi;/sdl;/RTC1;/MDd> -- INTERNAL_LINKER_FLAGS= -MACHINE:X64;-NOLOGO;-NODEFAULTLIB:LIBCMT;-ignore:4099;$<$:-LTCG> -- INTERNAL_LINKER_FLAGS_STR= -MACHINE:X64 -NOLOGO -NODEFAULTLIB:LIBCMT -ignore:4099 $<$:-LTCG> -- COMMON_COMPILER_DEFINITIONS_STR=_CONSOLE _MBCS NTA_OS_WINDOWS NTA_COMPILER_MSVC NTA_ARCH_64 _CRT_SECURE_NO_WARNINGS _SCL_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE _SCL_SECURE_NO_DEPRECATE BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE BOOST_ALL_NO_LIB BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS BOOST_NO_WREGEX _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING VC_EXTRALEAN WIN32_LEAN_AND_MEAN NOMINMAX NOGDI $<$:NTA_ASSERTIONS_ON> -- COMMON_OS_LIBS = oldnames.lib;psapi.lib;ws2_32.lib -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- external import -- REPOSITORY_DIR = C:/Users/Leonard/Documents/htm.core -- CMAKE_BINARY_DIR = C:/Users/Leonard/Documents/htm.core/build/ThirdParty -- CMAKE_INSTALL_PREFIX = C:/Users/Leonard/Documents/htm.core/build/ThirdParty -- CMAKE_BUILD_TYPE = Release -- EXTERNAL_CXX_FLAGS = /EHsc;$<$:/MD>;$<$:/MDd> -- NEEDS_BOOST = OFF -- BINDING_BUILD = Python3 -- common_INCLUDE_DIR= C:/Users/Leonard/Documents/htm.core/external/common -- common_LIBRARIES= C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> -- C:/Users/Leonard/Documents/htm.core/build/ThirdParty/share/yaml-cpp.zip -- Obtaining yaml-cpp from https://github.com/jbeder/yaml-cpp/archive/master.zip -- obtaining Eigen -- Obtaining gtest -- obtaining PyBind11 -- obtaining MNIST data -- Downloading/updating mnist -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134. -- Configuring done -- Generating done -- Build files have been written to: C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-download Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 pour .NET Framework Copyright (C) Microsoft Corporation. Tous droits r�serv�s.

-- obtaining Cereal -- Configuring done -- Generating done -- Build files have been written to: C:/Users/Leonard/Documents/htm.core/build/ThirdParty Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 pour .NET Framework Copyright (C) Microsoft Corporation. Tous droits r�serv�s.

common.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\Release\common.lib gtest.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Release\gtest.lib gtest_main.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Release\gtest_main.lib mnist_example.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\Release\mnist_example.exe yaml-cpp.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\yaml-cpp\yaml-cpp-build\Release\libyaml-cppmd.lib Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 pour .NET Framework Copyright (C) Microsoft Corporation. Tous droits r�serv�s.

common.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\Debug\common.lib gtest.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Debug\gtestd.lib gtest_main.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\gtest\googletest-build\googletest\Debug\gtest_maind.lib mnist_example.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\mnist_data\mnist-build\Debug\mnist_example.exe yaml-cpp.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\ThirdParty\yaml-cpp\yaml-cpp-build\Debug\libyaml-cppmdd.lib -- Results from external build: -- common_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/external/common -- common_LIBRARIES = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> -- yaml-cpp_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-src/include -- yaml-cpp_LIBRARIES = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$<$:/Release/libyaml-cppmd.lib>$<$:/Debug/libyaml-cppmdd.lib> -- eigen_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/eigen/eigen-src -- gtest_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-src/googletest/include -- gtest_LIBRARIES = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/gtest/googletest-build/googletest/$<$:Release>$<$:Debug>/gtest$<$:d>.lib -- pybind11_SOURCE_DIR = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/pybind11/pybind11-src -- pybind11_BINARY_DIR = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/pybind11/pybind11-build -- mnist_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src/include -- mnist_SOURCE_DIR = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/mnist_data/mnist-src -- cereal_INCLUDE_DIRS = C:/Users/Leonard/Documents/htm.core/build/ThirdParty/cereal/cereal-src/include -- Configuring htm_core src -- MERGE_STATIC_LIBRARIES LIB_TARGET=htm_core, STATIC_LIBS = htm_core_solo;C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$<$:/Release/libyaml-cppmd.lib>$<$:/Debug/libyaml-cppmdd.lib>;C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> -- MERGE_STATIC_LIBRARIES: htm_core_solo -- MERGE_STATIC_LIBRARIES: C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$<$:/Release/libyaml-cppmd.lib>$<$:/Debug/libyaml-cppmdd.lib> - non-target lib. -- MERGE_STATIC_LIBRARIES: C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$<$:Release/common.lib>$<$:Debug/common.lib> - non-target lib. -- Configuring htm_core tests -- Configuring Python interface -- Found PythonInterp: C:/Users/Leonard/AppData/Local/Programs/Python/Python37/python.exe (found version "3.7.2") -- Found PythonLibs: C:/Users/Leonard/AppData/Local/Programs/Python/Python37/libs/Python37.lib -- pybind11 v2.2.4 -- Performing Test HAS_MSVC_GL_LTCG -- Performing Test HAS_MSVC_GL_LTCG - Success -- LTO enabled -- Configuring done -- Generating done -- Build files have been written to: C:/Users/Leonard/Documents/htm.core/build/scripts Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 pour .NET Framework Copyright (C) Microsoft Corporation. Tous droits réservés.

Checking Build System CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/test/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/bindings/py/cpp_src/CMakeFiles/generate.stamp is up-to-date. CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/ThirdParty/pybind11/pybind11-build/CMakeFiles/generate.stamp is up-to-date. Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. Anomaly.cpp AnomalyLikelihood.cpp Connections.cpp SDRClassifier.cpp SpatialPooler.cpp TemporalMemory.cpp c:\users\leonard\documents\htm.core\src\htm\algorithms\temporalmemory.cpp(223): warning C4267: 'argument': conversion from 'size_t' to 'htm::UInt', possible loss of data [C:\Users\Leonard\Documents\htm.core\bui ld\scripts\src\LibrarySource.vcxproj] ScalarEncoder.cpp RandomDistributedScalarEncoder.cpp Input.cpp Link.cpp Network.cpp NuPIC.cpp Output.cpp Region.cpp RegionImpl.cpp RegionImplFactory.cpp Spec.cpp YAMLUtils.cpp Watcher.cpp ArrayBase.cpp Compiling... BasicType.cpp Scalar.cpp Value.cpp Directory.cpp Env.cpp OS.cpp OSUnix.cpp OSWin.cpp Path.cpp Timer.cpp ScalarSensor.cpp SPRegion.cpp TestNode.cpp TMRegion.cpp VectorFile.cpp VectorFileEffector.cpp VectorFileSensor.cpp Sdr.cpp LoggingException.cpp LogItem.cpp Compiling... MovingAverage.cpp Random.cpp SdrMetrics.cpp StlIo.cpp Topology.cpp LINK : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance LibrarySource.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\scripts\src\LibrarySource.dir\Release\LibrarySource.lib Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. LINK : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance htm_core_solo.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\scripts\src\Release\htm_core_solo.lib Generating htm_core_dummy.c++ Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. htm_core_dummy.c++ LINK : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance htm_core.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\scripts\src\Release\htm_core.lib Combining $^<TARGET_FILE:htm_core^> for target htm_core from $^<TARGET_FILE:htm_core_solo^>;C:/Users/Leonard/Documents/htm.core/build/ThirdParty/yaml-cpp/yaml-cpp-build$^<$^<CONFIG:Release^>:/Release/libyaml- cppmd.lib^>$^<$^<CONFIG:Debug^>:/Debug/libyaml-cppmdd.lib^>;C:/Users/Leonard/Documents/htm.core/build/ThirdParty/$^<$^<CONFIG:Release^>:Release/common.lib^>$^<$^<CONFIG:Debug^>:Debug/common.lib^>. Microsoft (R) Library Manager Version 14.16.27032.1 Copyright (C) Microsoft Corporation. All rights reserved.

htm_core_solo.lib(Anomaly.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance Microsoft (R) Library Manager Version 14.16.27032.1 Copyright (C) Microsoft Corporation. All rights reserved.

Building Custom Rule C:/Users/Leonard/Documents/htm.core/bindings/py/cpp_src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/bindings/py/cpp_src/CMakeFiles/generate.stamp is up-to-date. algorithm_module.cpp py_Connections.cpp py_TemporalMemory.cpp py_SDRClassifier.cpp py_SpatialPooler.cpp Creating library C:/Users/Leonard/Documents/htm.core/build/scripts/bindings/py/cpp_src/Release/algorithms.lib and object C:/Users/Leonard/Documents/htm.core/build/scripts/bindings/py/cpp_src/Release/algori thms.exp Generating code Finished generating code algorithms.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\scripts\bindings\py\cpp_src\Release\algorithms.cp37-win_amd64.pyd Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. Hotgym.cpp HelloSPTP.cpp Creating library C:/Users/Leonard/Documents/htm.core/build/scripts/src/Release/benchmark_hotgym.lib and object C:/Users/Leonard/Documents/htm.core/build/scripts/src/Release/benchmark_hotgym.exp htm_core.lib(RandomDistributedScalarEncoder.obj) : error LNK2001: unresolved external symbol "unsigned int cdecl htm::MurmurHash3_x86_32(void const ,int,unsigned int)" (?MurmurHash3_x86_32@htm@@YAIPEBXHI@Z) [C:\Users\Leonard\Documents\htm.core\build\scripts\src\benchmark_hotgym.vcxproj] C:\Users\Leonard\Documents\htm.core\build\scripts\src\Release\benchmark_hotgym.exe : fatal error LNK1120: 1 unresolved externals [C:\Users\Leonard\Documents\htm.core\build\scripts\src\benchmark_hotgym.vcxproj] Building Custom Rule C:/Users/Leonard/Documents/htm.core/bindings/py/cpp_src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/bindings/py/cpp_src/CMakeFiles/generate.stamp is up-to-date. encoders_module.cpp py_ScalarEncoder.cpp py_RDSE.cpp Creating library C:/Users/Leonard/Documents/htm.core/build/scripts/bindings/py/cpp_src/Release/encoders.lib and object C:/Users/Leonard/Documents/htm.core/build/scripts/bindings/py/cpp_src/Release/encoders .exp htm_core.lib(RandomDistributedScalarEncoder.obj) : error LNK2001: unresolved external symbol "unsigned int __cdecl htm::MurmurHash3_x86_32(void const ,int,unsigned int)" (?MurmurHash3_x86_32@htm@@YAIPEBXHI@Z) [C:\Users\Leonard\Documents\htm.core\build\scripts\bindings\py\cpp_src\encoders.vcxproj] C:\Users\Leonard\Documents\htm.core\build\scripts\bindings\py\cpp_src\Release\encoders.cp37-win_amd64.pyd : fatal error LNK1120: 1 unresolved externals [C:\Users\Leonard\Documents\htm.core\build\scripts\binding s\py\cpp_src\encoders.vcxproj] Building Custom Rule C:/Users/Leonard/Documents/htm.core/bindings/py/cpp_src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/bindings/py/cpp_src/CMakeFiles/generate.stamp is up-to-date. PyBindRegion.cpp engine_module.cpp py_Engine.cpp py_Region.cpp py_OS.cpp py_Timer.cpp Creating library C:/Users/Leonard/Documents/htm.core/build/scripts/bindings/py/cpp_src/Release/engine_internal.lib and object C:/Users/Leonard/Documents/htm.core/build/scripts/bindings/py/cpp_src/Release/e ngine_internal.exp htm_core.lib(YAMLUtils.obj) : error LNK2001: unresolved external symbol "public: virtual __cdecl YAML::InvalidNode::~InvalidNode(void)" (??1InvalidNode@YAML@@UEAA@XZ) [C:\Users\Leonard\Documents\htm.core\build\ scripts\bindings\py\cpp_src\engine_internal.vcxproj] htm_core.lib(YAMLUtils.obj) : error LNK2001: unresolved external symbol "public: virtual cdecl YAML::Exception::~Exception(void)" (??1Exception@YAML@@UEAA@XZ) [C:\Users\Leonard\Documents\htm.core\build\script s\bindings\py\cpp_src\engine_internal.vcxproj] htm_core.lib(YAMLUtils.obj) : error LNK2001: unresolved external symbol "class YAML::Node cdecl YAML::Load(class std::basic_string<char,struct std::char_traits,class std::allocator > const &)" (?L oad@YAML@@YA?AVNode@1@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) [C:\Users\Leonard\Documents\htm.core\build\scripts\bindings\py\cpp_src\engine_internal.vcxproj] htm_core.lib(YAMLUtils.obj) : error LNK2001: unresolved external symbol "public: virtual __cdecl YAML::RepresentationException::~RepresentationException(void)" (??1RepresentationException@YAML@@UEAA@XZ) [C:\Use rs\Leonard\Documents\htm.core\build\scripts\bindings\py\cpp_src\engine_internal.vcxproj] htm_core.lib(YAMLUtils.obj) : error LNK2001: unresolved external symbol "public: virtual cdecl YAML::BadConversion::~BadConversion(void)" (??1BadConversion@YAML@@UEAA@XZ) [C:\Users\Leonard\Documents\htm.core\ build\scripts\bindings\py\cpp_src\engine_internal.vcxproj] htm_core.lib(YAMLUtils.obj) : error LNK2001: unresolved external symbol "public: virtual cdecl YAML::BadSubscript::~BadSubscript(void)" (??1BadSubscript@YAML@@UEAA@XZ) [C:\Users\Leonard\Documents\htm.core\bui ld\scripts\bindings\py\cpp_src\engine_internal.vcxproj] htm_core.lib(YAMLUtils.obj) : error LNK2001: unresolved external symbol "public: static bool cdecl YAML::convert::decode(class YAML::Node const &,bool &)" (?decode@?$convert@_N@YAML@@SANAEBVNode@2@AEA N@Z) [C:\Users\Leonard\Documents\htm.core\build\scripts\bindings\py\cpp_src\engine_internal.vcxproj] htm_core.lib(YAMLUtils.obj) : error LNK2001: unresolved external symbol "public: class YAML::detail::node & cdecl YAML::detail::memory::create_node(void)" (?create_node@memory@detail@YAML@@QEAAAEAVnode@23@XZ) [C:\Users\Leonard\Documents\htm.core\build\scripts\bindings\py\cpp_src\engine_internal.vcxproj] htm_core.lib(YAMLUtils.obj) : error LNK2001: unresolved external symbol "public: static class std::basic_string<char,struct std::char_traits,class std::allocator > const & cdecl YAML::detail::node _data::empty_scalar(void)" (?empty_scalar@node_data@detail@YAML@@SAAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) [C:\Users\Leonard\Documents\htm.core\build\scripts\bindings\py\cpp_src\eng ine_internal.vcxproj] htm_core.lib(YAMLUtils.obj) : error LNK2001: unresolved external symbol "public: class YAML::detail::node_iterator_base cdecl YAML::detail::node_data::end(void)" (?end@node_data@deta il@YAML@@QEAA?AV?$node_iterator_base@Vnode@detail@YAML@@@23@XZ) [C:\Users\Leonard\Documents\htm.core\build\scripts\bindings\py\cpp_src\engine_internal.vcxproj] htm_core.lib(YAMLUtils.obj) : error LNK2001: unresolved external symbol "public: class YAML::detail::node_iterator_base __cdecl YAML::detail::node_data::begin(void)" (?begin@node_data@ detail@YAML@@QEAA?AV?$node_iterator_base@Vnode@detail@YAML@@@23@XZ) [C:\Users\Leonard\Documents\htm.core\build\scripts\bindings\py\cpp_src\engine_internal.vcxproj] htm_core.lib(YAMLUtils.obj) : error LNK2001: unresolved external symbol "public: unsigned int64 cdecl YAML::detail::node_data::size(void)const " (?size@node_data@detail@YAML@@QEBA_KXZ) [C:\Users\Leonard\Doc uments\htm.core\build\scripts\bindings\py\cpp_src\engine_internal.vcxproj] htm_core.lib(YAMLUtils.obj) : error LNK2001: unresolved external symbol "public: void cdecl YAML::detail::node_data::set_null(void)" (?set_null@node_data@detail@YAML@@QEAAXXZ) [C:\Users\Leonard\Documents\htm. core\build\scripts\bindings\py\cpp_src\engine_internal.vcxproj] htm_core.lib(YAMLUtils.obj) : error LNK2001: unresolved external symbol "public: void __cdecl YAML::detail::node_data::mark_defined(void)" (?mark_defined@node_data@detail@YAML@@QEAAXXZ) [C:\Users\Leonard\Docume nts\htm.core\build\scripts\bindings\py\cpp_src\engine_internal.vcxproj] C:\Users\Leonard\Documents\htm.core\build\scripts\bindings\py\cpp_src\Release\engine_internal.cp37-win_amd64.pyd : fatal error LNK1120: 14 unresolved externals [C:\Users\Leonard\Documents\htm.core\build\scripts \bindings\py\cpp_src\engine_internal.vcxproj] Building Custom Rule C:/Users/Leonard/Documents/htm.core/bindings/py/cpp_src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/bindings/py/cpp_src/CMakeFiles/generate.stamp is up-to-date. math_module.cpp py_Random.cpp py_reals.cpp py_Topology.cpp Creating library C:/Users/Leonard/Documents/htm.core/build/scripts/bindings/py/cpp_src/Release/math.lib and object C:/Users/Leonard/Documents/htm.core/build/scripts/bindings/py/cpp_src/Release/math.exp Generating code Finished generating code math.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\scripts\bindings\py\cpp_src\Release\math.cp37-win_amd64.pyd Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/CMakeFiles/generate.stamp is up-to-date. MNIST_SP.cpp c:\users\leonard\documents\htm.core\build\thirdparty\mnist_data\mnist-src\include\mnist\mnist_utils.hpp(29): warning C4244: '=': conversion from 'double' to 'unsigned char', possible loss of data [C:\Users\Leon ard\Documents\htm.core\build\scripts\src\mnist_sp.vcxproj] c:\users\leonard\documents\htm.core\build\thirdparty\mnist_data\mnist-src\include\mnist\mnist_utils.hpp(89): note: see reference to function template instantiation 'void mnist::binarize_each<std::vector<Image ,std::allocator<_Ty>>>(Container &,double)' being compiled with [ Image=std::vector<uint8_t,std::allocator>, _Ty=std::vector<uint8_t,std::allocator>, Container=std::vector<std::vector<uint8_t,std::allocator>,std::allocator<std::vector<uint8_t,std::allocator>>> ] c:\users\leonard\documents\htm.core\src\examples\mnist\mnist_sp.cpp(106): note: see reference to function template instantiation 'void mnist::binarize_dataset<mnist::MNIST_dataset<std::vector,std::vector<uint 8_t,std::allocator<_Ty>>,uint8_t>>(Dataset &)' being compiled with [ _Ty=uint8_t, Dataset=mnist::MNIST_dataset<std::vector,std::vector<uint8_t,std::allocator>,uint8_t> ] c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\filesystem(2392): note: see reference to class template instantiation 'std::chrono::time_point<std::filesystem:: _File_time_clock,std::filesystem::_File_time_clock::duration>' being compiled c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\type_traits(616): note: see reference to class template instantiation 'std::basic_string_view<wchart,std::char traits>' being compiled c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\xstring(2122): note: see reference to class template instantiation 'std::is_convertible<const _StringViewIsh &,s td::basic_string_view<wchar_t,std::char_traits>>' being compiled with [ _StringViewIsh=const wchar_t ] c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\xstring(2122): note: see reference to variable template 'const bool conjunction_v<std::is_convertible<wchar_t co nst const &,std::basic_string_view<wchar_t,std::char_traits > >,std::negation<std::is_convertible<wchar_t const const &,wchar_t const > > >' being compiled c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\xstring(2281): note: see reference to alias template instantiation 'std::basic_string<wchar_t,std::char_traits<w char_t>,std::allocator>::_Is_string_view_ish<_StringViewIsh>' being compiled with [ _StringViewIsh=const wchar_t * ] Creating library C:/Users/Leonard/Documents/htm.core/build/scripts/src/Release/mnist_sp.lib and object C:/Users/Leonard/Documents/htm.core/build/scripts/src/Release/mnist_sp.exp Generating code Finished generating code mnist_sp.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\scripts\src\Release\mnist_sp.exe Building Custom Rule C:/Users/Leonard/Documents/htm.core/bindings/py/cpp_src/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/bindings/py/cpp_src/CMakeFiles/generate.stamp is up-to-date. sdr_module.cpp py_SDR.cpp py_SDR_Metrics.cpp Creating library C:/Users/Leonard/Documents/htm.core/build/scripts/bindings/py/cpp_src/Release/sdr.lib and object C:/Users/Leonard/Documents/htm.core/build/scripts/bindings/py/cpp_src/Release/sdr.exp Generating code Finished generating code sdr.vcxproj -> C:\Users\Leonard\Documents\htm.core\build\scripts\bindings\py\cpp_src\Release\sdr.cp37-win_amd64.pyd Building Custom Rule C:/Users/Leonard/Documents/htm.core/src/test/CMakeLists.txt CMake does not need to re-run because C:/Users/Leonard/Documents/htm.core/build/scripts/src/test/CMakeFiles/generate.stamp is up-to-date. UnitTestMain.cpp AnomalyTest.cpp AnomalyLikelihoodTest.cpp ConnectionsPerformanceTest.cpp ConnectionsTest.cpp HelloSPTPTest.cpp SDRClassifierTest.cpp SpatialPoolerTest.cpp TemporalMemoryTest.cpp ScalarEncoderTest.cpp RandomDistributedScalarEncoderTest.cpp CppRegionTest.cpp HelloRegionTest.cpp InputTest.cpp LinkTest.cpp NetworkTest.cpp YAMLUtilsTest.cpp WatcherTest.cpp TopologyTest.cpp ArrayTest.cpp Compiling... BasicTypeTest.cpp CollectionTest.cpp DimensionsTest.cpp ScalarTest.cpp ValueTest.cpp DirectoryTest.cpp EnvTest.cpp OSTest.cpp PathTest.cpp TimerTest.cpp RegionTestUtilities.cpp SPRegionTest.cpp c:\users\leonard\documents\htm.core\src\test\unit\regions\spregiontest.cpp(356): warning C4305: 'argument': truncation from 'double' to 'htm::Real32' [C:\Users\Leonard\Documents\htm.core\build\scripts\src\test\ unit_tests.vcxproj] TMRegionTest.cpp VectorFileTest.cpp ExceptionTest.cpp SdrTest.cpp GroupByTest.cpp MovingAverageTest.cpp RandomTest.cpp VectorHelpersTest.cpp Compiling... SdrMetricsTest.cpp HelloSPTP.cpp gtest.lib(gtest-all.obj) : fatal error LNK1112: module machine type 'x86' conflicts with target machine type 'x64' [C:\Users\Leonard\Documents\htm.core\build\scripts\src\test\unit_tests.vcxproj] Traceback (most recent call last): File "setup.py", line 53, in

File "C:\Users\Leonard\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 263, in run_path pkg_name=pkg_name, script_name=fname) File "C:\Users\Leonard\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 96, in _run_module_code mod_name, mod_spec, pkg_name, script_name) File "C:\Users\Leonard\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "C:\Users\Leonard\Documents\htm.core\bindings\py\packaging\setup.py", line 224, in getExtensionFiles(platform) File "C:\Users\Leonard\Documents\htm.core\bindings\py\packaging\setup.py", line 178, in getExtensionFiles generateExtensions() File "C:\Users\Leonard\Documents\htm.core\bindings\py\packaging\setup.py", line 210, in generateExtensions subprocess.check_call(["cmake", "--build", ".", "--target", "install", "--config", "Release"]) File "C:\Users\Leonard\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 347, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--target', 'install', '--config', 'Release']' returned non-zero exit status 1.`

At least the right compiler has been chosen :

-- CMAKE_CXX_COMPILER = C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe

and the bitness is right :

-- BITNESS = 64

I am going to try the fix you merged now.

breznak commented 5 years ago

gtest.lib(gtest-all.obj) : fatal error LNK1112: module machine type 'x86' conflicts with target machine type 'x64' [C:\Users\Leonard\Documents\htm.core\build\scripts\src\test\unit_tests.vcxproj] Traceback (most recent call last): File "setup.py", line 53, in

gtest still builds with wrong bitness. Did you rm build/ThirdParty before your testing?

leonardtschora commented 5 years ago

gtest still builds with wrong bitness. Did you rm build/ThirdParty before your testing?

Before each try I delete the entiere build folder.

breznak commented 5 years ago

Can this be closed now?

dkeeney commented 5 years ago

Can this be closed now?

I think I have a correct fix this time. Seems to work here. But still waiting on @Leonardbcm to confirm it works with both setup.py install and with startupMSVC.bat in his environment if he is willing to try it one more time.

leonardtschora commented 5 years ago

Hi, today I retried the 2 ways of building. They both worked. The logs of the builds are available in: log.txt.

As for testings, my scripts using this package still run properly.

Thanks a lot for your support.

dkeeney commented 5 years ago

today I retried the 2 ways of building. They both worked.

Wonderful. Thanks for taking the time to make sure I got this right. :-)

dkeeney commented 5 years ago

We can now close this issue and the corresponding PR.