1.编译指令:
gn gen out/x86 --ide=vs2022 --args="target_cpu=\"x86\" is_debug = true is_clang=false treat_warnings_as_errors = false use_custom_libcxx = false use_lld = false rtc_use_h264 = true proprietary_codecs = true is_component_ffmpeg = true enable_iterator_debugging = true ffmpeg_branding = \"Chrome\" rtc_include_tests = false"
不使用clang工具,使用该工具编译出来的库无法被非clang工具编译的项目正常引用。
2.问题解决
①error C7555: 使用指定的初始值设定项至少需要“/std:c++20”
修改src\build\config\compiler\BUILD.gn中的如下配置
else if (is_win) {
cflags_c += [ "/std:c11" ]
if (defined(use_cxx17) && use_cxx17) {
cflags_cc += [ "/std:c++17" ]
} else {
cflags_cc += [ "/std:c++20" ]
}
}
将上面的c++17修改为c++20即可,尝试将use_cxx17=false定义在参数中无效,只能修改c++17为c++20
②matched_filter_avx2.cc(84): error C2676: 二进制“[”:“__m256”不定义该运算符或到预定义运算符可接收的类型的转换
matched_filter_avx2.cc(85): error C2676: 二进制“[”:“__m128”不定义该运算符或到预定义运算符可接收的类型的转换
解决方法详见附件,附件为解决好的cpp文件,此处不再进行额外描述,链接如下
https://download.csdn.net/download/qq_17411797/89332186