【问题标题】:Only clang-cl is supported on Windows, when I compile my webrtc server当我编译我的 webrtc 服务器时,Windows 上只支持 clang-cl
【发布时间】:2020-06-07 18:13:11
【问题描述】:

我实际上正在尝试在 Visual Studio 2019 中为 webrtc 构建我的服务器,并添加了额外的目录 chromium 源,我收到了这个错误。

Error C1189 #error: "Only clang-cl is supported on Windows, see https://crbug.com/988071"   Server  D:\projects\chromium-src\src\base\compiler_specific.h   13  

谁能告诉我成功构建缺少什么。

编辑 1: 现在我确定我的编译环境是它采用 MSVC 而不是叮当声的问题。谁能指导我如何将 MSVC 更改为在 Visual Studio 上发出叮当声。我确实尝试了很多,但无法提出解决方案。

编辑 2: Chromium 正在使用 is_clang=true 成功构建,但是当我在我的 webrtc-media-server 中使用它时,当我实际将 chromium 作为依赖项包含时,它会给出相同的 clang 错误。

【问题讨论】:

  • Chromium 使用clang 来编译文件。您是否安装了 depot_tools 并按照其他步骤进行编译? AFAIK,他们已经放弃了对微软 C++ 编译器的支持。
  • 我按照安装步骤首先提取了捆绑包,然后给出了 gclient 命令并在环境变量中设置了 depot_tools 的路径。有什么我错过的吗?
  • @Asesh 我的兄弟,如果您知道在 windows 中使用 clang for webrtc 正确构建 chromium 的步骤,请您给我一些时间来指导我。
  • 如果您可以提供更多信息,包括编译时日志,那么它会更有帮助。我在 Chromium 代码库中没有看到 compiler_specific.h 文件。
  • 刚刚浏览了这段代码:chromium.googlesource.com/chromium/src/+/…,它正在发出该错误消息。很明显,您的环境配置为 MSVC 编译器而不是 clang,这就是您看到该消息的原因

标签: c++ visual-studio clang webrtc chromium


【解决方案1】:

正如 Asesh 所提到的,对 Visual C++ 编译器的支持已被删除。在这种情况下,在构建 Chromium 时,请按照以下步骤修改构建标志:

运行以下命令,将在编辑器中打开args.gn 文件:

gn args out\Default

在该文件中将is_clang 布尔值指定为true 并保存:

is_clang=true

【讨论】:

    【解决方案2】:

    PowerShell 脚本和分步说明RainwayApp / webrtc-build-scripts 将帮助您在 Windows 上构建 WebRTC(并在需要的情况下打补丁)。

    您基本上需要准备好 depot 工具,然后build.ps1 将完成剩下的工作并构建代码(在此脚本中构建静态库,但脚本本身相对较小,因此很容易看到如何进一步调整它)。

    【讨论】:

      【解决方案3】:

      通过在项目属性->配置属性->C/C++ 属性->预处理器定义的预处理器定义中定义__clang__,我能够想出一个技巧来解决这个问题。

      【讨论】:

        猜你喜欢
        • 2016-04-04
        • 2013-01-31
        • 2018-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-29
        • 2016-09-03
        • 1970-01-01
        相关资源
        最近更新 更多