Visual Studio 2019 generator set Boost path incorrectly
I'm using Visual Studio 2019 combined with cmake 3.14.2 to be able to use the new "Visual Studio 16 2019" generator. Additionally, I'm using precompiled binaries for Boost 1.70, which includes versions for Visual Studio 2019, located under:
C:\local\boost_1_70_0\lib64-msvc-14.2:
libboost_atomic-vc142-mt-x64-1_70.lib
libboost_bzip2-vc142-mt-x64-1_70.lib
libboost_chrono-vc142-mt-x64-1_70.lib
libboost_container-vc142-mt-x64-1_70.lib
libboost_context-vc142-mt-x64-1_70.lib
libboost_contract-vc142-mt-x64-1_70.lib
libboost_coroutine-vc142-mt-x64-1_70.lib
libboost_date_time-vc142-mt-x64-1_70.lib
libboost_exception-vc142-mt-x64-1_70.lib
libboost_fiber-vc142-mt-x64-1_70.lib
libboost_filesystem-vc142-mt-x64-1_70.lib
libboost_graph-vc142-mt-x64-1_70.lib
libboost_iostreams-vc142-mt-x64-1_70.lib
libboost_locale-vc142-mt-x64-1_70.lib
libboost_log_setup-vc142-mt-x64-1_70.lib
libboost_log-vc142-mt-x64-1_70.lib
libboost_math_c99f-vc142-mt-x64-1_70.lib
libboost_math_c99l-vc142-mt-x64-1_70.lib
libboost_math_c99-vc142-mt-x64-1_70.lib
libboost_math_tr1f-vc142-mt-x64-1_70.lib
libboost_math_tr1l-vc142-mt-x64-1_70.lib
libboost_math_tr1-vc142-mt-x64-1_70.lib
libboost_prg_exec_monitor-vc142-mt-x64-1_70.lib
libboost_program_options-vc142-mt-x64-1_70.lib
libboost_python37-vc142-mt-x64-1_70.lib
libboost_random-vc142-mt-x64-1_70.lib
libboost_regex-vc142-mt-x64-1_70.lib
libboost_serialization-vc142-mt-x64-1_70.lib
libboost_stacktrace_noop-vc142-mt-x64-1_70.lib
libboost_stacktrace_windbg_cached-vc142-mt-x64-1_70.lib
libboost_stacktrace_windbg-vc142-mt-x64-1_70.lib
libboost_system-vc142-mt-x64-1_70.lib
libboost_test_exec_monitor-vc142-mt-x64-1_70.lib
libboost_thread-vc142-mt-x64-1_70.lib
libboost_timer-vc142-mt-x64-1_70.lib
libboost_type_erasure-vc142-mt-x64-1_70.lib
libboost_unit_test_framework-vc142-mt-x64-1_70.lib
libboost_wave-vc142-mt-x64-1_70.lib
libboost_wserialization-vc142-mt-x64-1_70.lib
libboost_zlib-vc142-mt-x64-1_70.lib
However, the vcxproj generated by CMake points to Visual Studio 2017 (v141) location and libraries, for example:
<AdditionalDependencies>C:\local\boost_1_70_0\lib64-msvc-14.1\libboost_filesystem-vc141-mt-x64-1_70.lib;C:\local\boost_1_70_0\lib64-msvc-14.1\libboost_program_options-vc141-mt-x64-1_70.lib;C:\local\boost_1_70_0\lib64-msvc-14.1\libboost_thread-vc141-mt-x64-1_70.lib;C:\local\boost_1_70_0\lib64-msvc-14.1\libboost_system-vc141-mt-x64-1_70.lib;C:\local\boost_1_70_0\lib64-msvc-14.1\libboost_stacktrace_windbg-vc141-mt-x64-1_70.lib;C:\local\boost_1_70_0\lib64-msvc-14.1\libboost_chrono-vc141-mt-x64-1_70.lib;C:\local\boost_1_70_0\lib64-msvc-14.1\libboost_date_time-vc141-mt-x64-1_70.lib;C:\local\boost_1_70_0\lib64-msvc-14.1\libboost_atomic-vc141-mt-x64-1_70.lib;C:\IBM\ILOG\CPLEX_Studio128\cplex\lib\x64_windows_vs2017\stat_mda\cplex1280.lib;C:\gurobi811\win64\lib\gurobi81.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib</AdditionalDependencies>
Manually modifying the Visual Studio Project files to point to the proper location fixes the problem.
Edited by Alvaro Palma