【问题标题】:Enable C++ Modules TS in clang-cl在 clang-cl 中启用 C++ Modules TS
【发布时间】:2018-09-23 15:30:32
【问题描述】:

我在 Windows 上通过 clang-cl 使用 clang(来自 LLVM 版本 7.00)。

我正在尝试让 C++ 模块工作。我已经尝试过 clang 命令行参数 -fmodules-ts-fmodules

我还尝试了msvc 命令行参数(在 MSVC 下工作 - 我使用的是 15.8.5)/experimental:module /module:interface(这将是非实验选项的正常方式)。

所有选项都会导致错误clang-cl.exe: warning: unknown argument ignored in clang-cl

有人知道clang-cl下的C++ Modules TS是否可以使用?

【问题讨论】:

  • 您是否检查过clang-cl --helpman clang-cl 是否列出了这些选项?
  • @MartinUeding 鉴于 clang-cl 会将任何无法识别的命令行参数传递到 clang 后端,我不明白这有什么帮助。
  • 你可以试试build2。我为具有 modules-ts 示例的 ninja 构建系统编写了 tiny preprocessor。我只在 Ubuntu 上试过。如果你会读 bash,那么你应该可以将它适配到 windows 上。
  • @Zendel,或者我可以编写自己的编译器 :-) 不幸的是,clang-cl 是一头奇怪的野兽(clang 它不是)。

标签: c++ clang c++-modules clang-cl


【解决方案1】:

使用option -Xclang,像这样:

clang-cl -Xclang -fmodules

【讨论】:

  • 你已经用过这个了吗?它接受该选项,但似乎并未实际使用它。
【解决方案2】:

要启用 C++ 模块支持,您需要最新的 clang 10.0 版本(怀疑是这样),可以从该 URL 下载该版本,作为最新的快照版本:

https://llvm.org/builds/

使用 Visual Studio 2019 / windows - 签出以下 git 存储库:

git clone https://github.com/NTSFka/CMakeCxxModules.git

使用 Visual Studio 2019 打开文件夹,从配置 > 托管配置

添加 x64-CLang-Debug 配置,选择它。

勾选“显示高级变量”并在CMAKE_C_COMPILER中选择

C:/Program Files/LLVM/bin/clang.exe

CMAKE_CXX_COMPILER选择

C:/Program Files/LLVM/bin/clang++.exe

编译程序。

我自己测试的 intellisense 工作正常,但仍有一些文本显示为红色(vs2019,16.3.7),情况可能会随着 Visual Studio 更新而改变。

【讨论】:

    猜你喜欢
    • 2022-06-11
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多