gpt4 book ai didi

c++ - 基于 CMake 平台的 Clang

转载 作者:行者123 更新时间:2023-11-27 23:48:53 24 4
gpt4 key购买 nike

我正在设置跨平台构建环境。出于这个原因,我选择了 clang,如果我错了,请纠正我:

  • 为不同的平台使用“相同”的编译器可能会减少让 gcc 代码与 MSVC 一起工作时出现的怪癖
  • Clang 及其与 MSVC 兼容的 ABI 让我可以像使用 MSVC 一样使用 WINAPI。

我的问题是:如何根据平台让 CMake 找到要使用的正确 clang,即 Windows 中的 clang-cl 和 Windows 上的 clang *nix 平台?

请注意,如果重要的话,我将为 CMake 使用 Ninja 生成器,并且该项目是基于 Qt 的。

最佳答案

您(项目作者)无法选择编译器,调用 CMake 的用户可以选择编译器。

如果您对用户所做的选择不满意,您在 CMakeLists 中唯一可以做的就是中止并出现错误。

用户可以通过多种方式向 CMake 指定要使用的编译器。流行的例子包括设置 respective environment variables , 通过 -DCMAKE_CXX_COMPILER 传递在第一次 CMake 运行时(在第一次运行时;如果不从头开始重新配置,您以后无法更改它!),或者使用 toolchain file .

在 Visual Studio 上,您还可以使用 the -T option选择构建工具链。这允许您使用 Visual Studio 中的 clang 进行构建。

您应该在项目的自述文件中记录您希望用户为 CMake 配置哪个编译器,并可能给他们一个小示例,说明如何通过上述方法之一执行此操作。

关于c++ - 基于 CMake 平台的 Clang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48284683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com