美文网首页
记录window cmake 加载 webrtc.lib

记录window cmake 加载 webrtc.lib

作者: FM_1ad7 | 来源:发表于2023-08-19 09:18 被阅读0次
gn gen  --ide=vs2022 --args="is_clang = true use_custom_libcxx = false use_rtti=true rtc_include_tests=false enable_iterator_debugging=true symbol_level=0 " ../out/debug_x64

ninja -C ../out/debug_x64

use_custom_libcxx = false use_custom_libcxx=false这是用来控制编译WebRtc时使用的c++库的。原因很简单,如果不加这个编译开关的话,WebRtc编译默认使用libc++来编译,而我们编译别的代码用的是libstdc++,这样在编译的过程中就会导致用到std::string的地方各种错误

rtc_include_tests=false 关闭单元测试代码,挺高速度

如果生成遇见下面的 错误

 implicit conversion changes signedness: 'size_t' (aka 'unsigned long long') to 'ptrdiff_t' (aka 'long long') [-Wsign-conversion]

修改编译文件
third_party/abseil-cpp/BUILD.gn

config("absl_default_cflags_cc") {
  #cflags_cc = [""]
  cflags_cc = ["-Wno-error"] #关闭调 警告报错
  if (is_clang) {
    cflags_cc += [
      # TODO(crbug.com/588506): Explicitly enable conversion warnings.
      "-Wbool-conversion",
      "-Wconstant-conversion",
      "-Wenum-conversion",
      "-Wint-conversion",
      "-Wliteral-conversion",
      "-Wnon-literal-null-conversion",
      "-Wnull-conversion",
      "-Wobjc-literal-conversion",
      "-Wstring-conversion",
    ]
    if (!is_nacl) {
      cflags_cc += [ "-Wbitfield-enum-conversion" ]
    }
  }
}

成功之后的 cmake配置, cmake参考的文章
https://stackoverflow.com/questions/69235936/how-to-use-webrtc-lib-static-library-in-vs-2019-or-clion-project

cmake_minimum_required(VERSION 3.21.3)
project(webrtcAudio)

#set(CMAKE_CXX_STANDARD 14)
set(CMAKE_C_COMPILER "clang")
#set(CMAKE_CXX_COMPILER "clang++")
include_directories(
        "G:/webrtc/webrtc-checkout/src"
        "G:/webrtc/webrtc-checkout/src/out/debug_x64/obj"
        "G:/webrtc/webrtc-checkout/src/third_party/abseil-cpp"
        "G:/webrtc/webrtc-checkout/src/third_party/libyuv/include"
)


add_definitions(
        -D_ITERATOR_DEBUG_LEVEL=2
        -DUSE_AURA=1
        -D_HAS_EXCEPTIONS=0
        -D__STD_C
        -D_CRT_RAND_S
        -D_CRT_SECURE_NO_DEPRECATE
        -D_SCL_SECURE_NO_DEPRECATE
        -D_ATL_NO_OPENGL
        -D_WINDOWS
        -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS
        -DPSAPI_VERSION=2
        -DWIN32
        -D_SECURE_ATL
        -DWINUWP
        -D__WRL_NO_DEFAULT_LIB__
        -DWINAPI_FAMILY=WINAPI_FAMILY_PC_APP
        -DWIN10=_WIN32_WINNT_WIN10
        -DWIN32_LEAN_AND_MEAN
        -DNOMINMAX
        -D_UNICODE
        -DUNICODE
        -DNTDDI_VERSION=NTDDI_WIN10_RS2
        -D_WIN32_WINNT=0x0A00
        -DWINVER=0x0A00
        -DNDEBUG
        -DNVALGRIND
        -DDYNAMIC_ANNOTATIONS_ENABLED=0
        -DWEBRTC_ENABLE_PROTOBUF=0
        -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE
        -DRTC_ENABLE_VP9
        -DHAVE_SCTP
        -DWEBRTC_LIBRARY_IMPL
        -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0
        -DWEBRTC_WIN
        -DABSL_ALLOCATOR_NOTHROW=1
        -DHAVE_SCTP
        -DWEBRTC_VIDEO_CAPTURE_WINRT)

set(-Dwebrtc.lib)
#

add_executable(webrtcAudio main.cc)

set_property(TARGET webrtcAudio PROPERTY
        MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
target_link_libraries(webrtcAudio
        PRIVATE
        "G:/webrtc/webrtc-checkout/out/debug_x64/obj/webrtc.lib" #配置自己的路径
        WS2_32 secur32.lib winmm.lib dmoguids.lib wmcodecdspuuid.lib msdmo.lib Strmiids.lib
        )

解决检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”的问题

set_property(TARGET webrtcAudio PROPERTY
        MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")

解决无法解析的外部符号 __imp_getsockopt 的问题

 WS2_32 secur32.lib winmm.lib dmoguids.lib wmcodecdspuuid.lib msdmo.lib Strmiids.lib

解决无法解析 __imp_GetAdaptersAddresses window 获取网卡信息

Iphlpapi.lib

相关文章

  • 2022年CMAKE笔记

    安装CMAKE 1.Centos Linux可使用yum安装CMake。 2.源代码安装 3.Window没用安装...

  • CMake-api详解

    版本号 cmake_minimum_required(VERSION 3.4.1) 加载其他的cmake文件 ad...

  • Win10+libtorch1.1+opencv 笔记

    这几天刚刚把libtorch加载模型弄明白,记录一下。1、正确安装VS2017+opencv+cmake +pyt...

  • vs cmake 配置 SDL2

    一、下载SDL window库 二、配置cmakeList cmake_minimum_required (VER...

  • 《NDK——android studio cmakelists.

    1、设置Cmake版本 2、头文件的加载 3、set 设置变量,方便使用 ${CMAKE_SOURCE_DIR}表...

  • BOM window对象的常见事件

    一、窗口加载事件 1、window.onload window.onload 是窗口(页面)加载事件,当文档内容完...

  • window加载

    简书不支持流程图,请看此网页 1.android中UI界面分类 system window 系统界面,系统中定义i...

  • OpenCv库的精简

    1.在window上用cmake编译opencv for Android 编译Android平台的opencv 这...

  • window.onload=function()以及onload

    window.onload: 页面加载完成 一,window.onload的用法: 该方法用于在网页加载完毕后立刻...

  • window 事件

    window.onload window.onload 是在窗口加载完毕之后才会执行不能在window.onloa...

网友评论

      本文标题:记录window cmake 加载 webrtc.lib

      本文链接:https://www.haomeiwen.com/subject/qicjmdtx.html