Getting a lot of errors when building tests and examples on Windows
Hello, I am getting a lot of errors when compiling the library with tests and examples with MSVC. MSVC version = 19.29.30154.0 NVCC version = 12.3.107 I am compiling with :
cmake -DNVBench_ENABLE_TESTING=ON -DNVBench_ENABLE_DEVICE_TESTING=ON -DNVBench_ENABLE_EXAMPLES=ON -DCMAKE_CUDA_ARCHITECTURES=75 ..
cmake --build . --config Release
Here is some errors i'm getting if I build with -DNVBench_ENABLE_WERROR=OFF:
LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
C:\Users\gschwab\dev\libraries\nvbench\testing\statistics.cu(89): error : namespace "std" has no member "transform" [C: \Users\gschwab\dev\libraries\nvbench\build\testing\nvbench.test.statistics.vcxproj] std::transform(std::begin(signal),
warning C4324: 'thrust ::detail::aligned_type<2>::type': structure was padded due to alignment specifier
C:/Users/gschwab/dev/libraries/nvbench/build/deps/fmt-src/include\fmt/ranges.h(436): error : no suitable user-defined conversion from "fmt::v9::detail::string_literal<char, ',', ' '>" to "fmt::v9::basic_string_view
" exists [C:\User s\gschwab\dev\libraries\nvbench\build\testing\nvbench.test.type_list.vcxproj] basic_string_view<Char> separator = detail::string_literal<Char, ',', ' '>{}; ^ detected during: instantiation of "fmt::v9::range_formatter<T, Char, fmt::v9::enable_if_t<fmt::v9::conjunction<std::is_sam e<T, fmt::v9::remove_cvref_t<T>>, fmt::v9::disjunction<fmt::v9::is_formattable<T, Char>, fmt::v9::detail::has_fallbac k_formatter<T, Char>>>::value, void>>::range_formatter() [with T=std::string, Char=char]" at line 545 instantiation of "fmt::v9::detail::range_default_formatter<K, R, Char, fmt::v9::enable_if_t<, void>>::range_default_formatter() [with K=fmt::v9::range_format::sequence, R=std::vector<std::string, std::allocator std::string>, Char=char]" at line 1310 of C:\Users\gschwab\dev\libraries\nvbench\build_deps\fmt-src\include\fmt\co re.h implicit generation of "fmt::v9::formatter<R, Char, fmt::v9::enable_if_t<fmt::v9::conjunction<fmt::v9::bo ol_constant< >, fmt::v9::detail::is_formattable_delayed<R, Char>>::value, void>>::formatter() [with R=std: :vector<std::string, std::allocatorstd::string>, Char=char]" at line 1310 of C:\Users\gschwab\dev\libraries\nvbench \build_deps\fmt-src\include\fmt\core.h instantiation of class "fmt::v9::formatter<R, Char, fmt::v9::enable_if_t<fmt::v9::conjunction<fmt::v9::bo ol_constant< >, fmt::v9::detail::is_formattable_delayed<R, Char>>::value, void>> [with R=std::vector<std:: string, std::allocatorstd::string>, Char=char]" at line 1310 of C:\Users\gschwab\dev\libraries\nvbench\build_deps
fmt-src\include\fmt\core.h instantiation of "void fmt::v9::detail::value<Context>::format_custom_arg<T,Formatter>(void *, Context::p arse_context_type &, Context &) [with Context=fmt::v9::format_context, T=std::vector<std::string, std::allocator<std: :string>>, Formatter=fmt::v9::formatter<std::vector<std::string, std::allocatorstd::string>, char, void>]" at line 1297 of C:\Users\gschwab\dev\libraries\nvbench\build_deps\fmt-src\include\fmt\core.h [ 2 instantiation contexts not shown ] instantiation of "auto fmt::v9::detail::make_arg<IS_PACKED,Context,,T, >(T &&)->fmt::v9: :detail::value<Context> [with IS_PACKED=true, Context=fmt::v9::format_context, =fmt::v9::detail::type::custo m_type, T=std::vector<std::string, std::allocatorstd::string> &, =0]" at line 1902 of C:\Users\gschwab\dev \libraries\nvbench\build_deps\fmt-src\include\fmt\core.h instantiation of "fmt::v9::format_arg_store<Context, Args...>::format_arg_store(T &&...) [with Context=fm t::v9::format_context, Args=<std::vector<std::string, std::allocatorstd::string>, std::vector<std::string, std::all ocatorstd::string>>, T=<std::vector<std::string, std::allocatorstd::string> &, std::vector<std::string, std::allo catorstd::string> &>]" at line 1918 of C:\Users\gschwab\dev\libraries\nvbench\build_deps\fmt-src\include\fmt\core. h instantiation of "auto fmt::v9::make_format_args(Args &&...)->fmt::v9::format_arg_store<Context, fmt::v9: :remove_cvref_t<Args>...> [with Context=fmt::v9::format_context, Args=<std::vector<std::string, std::allocator<std::s tring>> &, std::vector<std::string, std::allocatorstd::string> &>]" at line 3206 of C:\Users\gschwab\dev\libraries
nvbench\build_deps\fmt-src\include\fmt\core.h instantiation of "auto fmt::v9::format(fmt::v9::format_string<T...>, T &&...)->std::string [with T=<std:: vector<std::string, std::allocatorstd::string> &, std::vector<std::string, std::allocatorstd::string> &>]" at lin e 166 of C:\Users\gschwab\dev\libraries\nvbench\testing\type_list.cu instantiation of "void test_foreach::test<TypeList>(std::vector<std::string, std::allocatorstd::string> ) [with TypeList=test_foreach::TL0]" at line 171 of C:\Users\gschwab\dev\libraries\nvbench\testing\type_list.cu
C:\Users\gschwab\dev\libraries\nvbench\examples\axes.cu(136): error C2220: the following warning is treated as an error [C:\Users\gschwab\dev\libraries\nvbench\build\examples\nvbench.example.axes.vcxproj] C:\Users\gschwab\dev\libraries\nvbench\examples\axes.cu(136): warning C4127: conditional expression is constant [C:\Use rs\gschwab\dev\libraries\nvbench\build\examples\nvbench.example.axes.vcxproj] C:\Users\gschwab\dev\libraries\nvbench\examples\axes.cu(136): note: consider using 'if constexpr' statement instead C:\Users\gschwab\dev\libraries\nvbench\examples\axes.cu(178): note: see reference to function template instantiation 'void copy_type_conversion_sweep<T,short>(nvbench::state &,nvbench::type_list<T,short>)' being compiled with [ T=signed char ] C:/Users/gschwab/dev/libraries/nvbench\nvbench/runner.cuh(102): note: see reference to function template instantiatio n 'void copy_type_conversion_sweep_line_179::operator ()<T,short>(nvbench::state &,nvbench::type_list<T,short>)' bein g compiled with [ T=signed char ] C:\Users\gschwab\dev\libraries\nvbench\nvbench\detail/type_list_impl.cuh(92): note: see reference to function templat e instantiation 'void nvbench::runner<nvbench::benchmark<copy_type_conversion_sweep_line_179,nvbench::type_list<nvben ch::type_list<signed char,short,int,float,__int64,double>,nvbench::type_list<signed char,short,int,float,__int64,doub le>>>>::run_device::<lambda_1389fbdc8995e70550d8532e0f014162>::operator ()<nvbench::wrapped_type<nvbench::type_list<T ,short>>>(nvbench::wrapped_type<nvbench::type_list<T,short>>) const' being compiled with [ T=signed char ]