tg_owt fails to build on windows-x64
Steps to reproduce
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\api/array_view.h(162): error C2676: binary '<<': 'rtc::webrtc_checks_impl::LogStreamer<>' does not define this operator or a conversion to a type acceptable to the predefined operator
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(243): note: could be 'rtc::webrtc_checks_impl::LogStreamer<V> rtc::webrtc_checks_impl::LogStreamer<>::operator <<(const U &) const'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\api/array_view.h(162): note: 'rtc::webrtc_checks_impl::LogStreamer<V> rtc::webrtc_checks_impl::LogStreamer<>::operator <<(const U &) const': could not deduce template argument for 'V'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(235): note: or 'rtc::webrtc_checks_impl::LogStreamer<V> rtc::webrtc_checks_impl::LogStreamer<>::operator <<(U) const'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\api/array_view.h(162): note: 'rtc::webrtc_checks_impl::LogStreamer<V> rtc::webrtc_checks_impl::LogStreamer<>::operator <<(U) const': could not deduce template argument for 'V'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\api/array_view.h(162): note: the template instantiation context (the oldest one first) is
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\modules/audio_processing/aec3/vector_math.h(63): note: see reference to function template instantiation 'rtc::ArrayView<float,-4711>::ArrayView<rtc::ArrayView<float,-4711>,0x0>(U &)' being compiled
with
[
U=rtc::ArrayView<float,-4711>
]
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\modules/audio_processing/aec3/vector_math.h(63): note: see the first reference to 'rtc::ArrayView<float,-4711>::ArrayView' in 'webrtc::aec3::VectorMath::Sqrt'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\api/array_view.h(248): note: see reference to function template instantiation 'rtc::ArrayView<float,-4711>::ArrayView<T>(U *,size_t)' being compiled
with
[
T=float,
U=float
]
[93/1381] Building CXX object CMakeFiles\tg_owt_avx2.dir\src\modules\audio_processing\aec3\fft_data_avx2.cc.obj
FAILED: CMakeFiles/tg_owt_avx2.dir/src/modules/audio_processing/aec3/fft_data_avx2.cc.obj
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\api/array_view.h(162): error C2676: binary '<<': 'rtc::webrtc_checks_impl::LogStreamer<>' does not define this operator or a conversion to a type acceptable to the predefined operator
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(243): note: could be 'rtc::webrtc_checks_impl::LogStreamer<V> rtc::webrtc_checks_impl::LogStreamer<>::operator <<(const U &) const'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\api/array_view.h(162): note: 'rtc::webrtc_checks_impl::LogStreamer<V> rtc::webrtc_checks_impl::LogStreamer<>::operator <<(const U &) const': could not deduce template argument for 'V'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(235): note: or 'rtc::webrtc_checks_impl::LogStreamer<V> rtc::webrtc_checks_impl::LogStreamer<>::operator <<(U) const'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\api/array_view.h(162): note: 'rtc::webrtc_checks_impl::LogStreamer<V> rtc::webrtc_checks_impl::LogStreamer<>::operator <<(U) const': could not deduce template argument for 'V'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\api/array_view.h(162): note: the template instantiation context (the oldest one first) is
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\modules/audio_processing/aec3/fft_data.h(67): note: see reference to function template instantiation 'rtc::ArrayView<float,-4711>::ArrayView<rtc::ArrayView<float,-4711>,0x0>(U &)' being compiled
with
[
U=rtc::ArrayView<float,-4711>
]
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\modules/audio_processing/aec3/fft_data.h(67): note: see the first reference to 'rtc::ArrayView<float,-4711>::ArrayView' in 'webrtc::FftData::Spectrum'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\api/array_view.h(248): note: see reference to function template instantiation 'rtc::ArrayView<float,-4711>::ArrayView<T>(U *,size_t)' being compiled
with
[
T=float,
U=float
]
[94/1381] Building CXX object CMakeFiles\tg_owt_avx2.dir\src\modules\audio_processing\agc2\rnn_vad\vector_math_avx2.cc.obj
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(236): error C2440: '<function-style-cast>': cannot convert from 'initializer list' to 'rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>>'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(236): note: 'rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>>::LogStreamer': no overloaded function could convert all the argument types
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(280): note: could be 'rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>>::LogStreamer(T,const rtc::webrtc_checks_impl::LogStreamer<> *)'
with
[
T=rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>
]
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(236): note: 'rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>>::LogStreamer(T,const rtc::webrtc_checks_impl::LogStreamer<> *)': cannot convert argument 1 from 'rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kInt,int>' to 'T'
with
[
T=rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>
]
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(236): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(236): note: while trying to match the argument list '(rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kInt,int>, const rtc::webrtc_checks_impl::LogStreamer<> *)'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(236): note: the template instantiation context (the oldest one first) is
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\modules/audio_processing/aec3/block_buffer.h(41): note: see reference to function template instantiation 'rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>> rtc::webrtc_checks_impl::LogStreamer<>::operator <<<int,rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>,0x0>(U) const' being compiled
with
[
U=int
]
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\api/array_view.h(162): error C2676: binary '<<': 'rtc::webrtc_checks_impl::LogStreamer<>' does not define this operator or a conversion to a type acceptable to the predefined operator
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(243): note: could be 'rtc::webrtc_checks_impl::LogStreamer<V> rtc::webrtc_checks_impl::LogStreamer<>::operator <<(const U &) const'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\api/array_view.h(162): note: 'rtc::webrtc_checks_impl::LogStreamer<V> rtc::webrtc_checks_impl::LogStreamer<>::operator <<(const U &) const': could not deduce template argument for 'V'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(235): note: or 'rtc::webrtc_checks_impl::LogStreamer<V> rtc::webrtc_checks_impl::LogStreamer<>::operator <<(U) const'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\api/array_view.h(162): note: 'rtc::webrtc_checks_impl::LogStreamer<V> rtc::webrtc_checks_impl::LogStreamer<>::operator <<(U) const': could not deduce template argument for 'V'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\api/array_view.h(162): note: the template instantiation context (the oldest one first) is
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\modules/audio_processing/aec3/block.h(62): note: see reference to function template instantiation 'rtc::ArrayView<float,64>::ArrayView<_Ty>(U *,size_t)' being compiled
with
[
_Ty=float,
U=float
]
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\modules/audio_processing/aec3/block.h(62): note: see the first reference to 'rtc::ArrayView<float,64>::ArrayView' in 'webrtc::Block::View'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(288): error C2440: '<function-style-cast>': cannot convert from 'initializer list' to 'rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>,T>'
with
[
T=rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>
]
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(288): note: 'rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>,T>::LogStreamer': no overloaded function could convert all the argument types
with
[
T=rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>
]
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(280): note: could be 'rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>,T>::LogStreamer(T,const rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>> *)'
with
[
T=rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>
]
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(288): note: 'rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>,T>::LogStreamer(T,const rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>> *)': cannot convert argument 1 from 'rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kInt,int>' to 'T'
with
[
T=rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>
]
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(288): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(288): note: while trying to match the argument list '(rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kInt,int>, const rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>> *)'
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\rtc_base/checks.h(288): note: the template instantiation context (the oldest one first) is
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\modules/audio_processing/aec3/block_buffer.h(41): note: see reference to function template instantiation 'rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>,T> rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>>::operator <<<int,rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>,0x0>(U) const' being compiled
with
[
T=rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>,
U=int
]
D:\03_Data\BuildPath\Libraries\win64\tg_owt\src\modules/audio_processing/aec3/block_buffer.h(41): note: see the first reference to 'rtc::webrtc_checks_impl::LogStreamer<rtc::webrtc_checks_impl::Val<rtc::webrtc_checks_impl::CheckArgType::kULongLong,unsigned __int64>>::operator <<' in 'webrtc::BlockBuffer::OffsetIndex'
[107/1381] Building CXX object CMakeFiles\tg_owt.dir\src\rtc_base\async_packet_socket.cc.obj
FAILED: CMakeFiles/tg_owt.dir/src/rtc_base/async_packet_socket.cc.obj
Expected behaviour
no error
Actual behaviour
error C2676 error C2440
Operating system
windows 11
Version of Telegram Desktop
Desktop
Installation source
Static binary from official website
Crash ID
No response
Logs
Weird, I was able to build it before, but now it's broken just like you.
After reinstalling the environment, it can be compiled normally
reinstall the visual studio.
Hey there!
This issue was inactive for a long time and will be automatically closed in 30 days if there isn't any further activity. We therefore assume that the user has lost interest or resolved the problem on their own.
Don't worry though; if this is an error, let us know with a comment and we'll be happy to reopen the issue.
Thanks!