问题标签 [clang-cl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1886 浏览

c++ - 是否可以使用 clang-cl 在 Windows 上生成 .lib 文件?

我在 Windows 上,我安装了 Visual Studio 和最新版本的clang. 我能够运行:

进而生成hello.exe,我可以按预期运行。

但我想做的是生成一个静态库(.lib文件)。我能够传递/LD标志来生成动态链接库,但我不知道如何生成静态库。

这可能与clang-cl吗?

0 投票
1 回答
1301 浏览

c++ - 在 Windows 8.1 上使用 clang-cl 64 位


我刚开始在 windows 上使用 clang-cl,因为我需要在 64 位应用程序中使用内联汇编,而 Visual Studio 2015 不支持,所以我被告知要使用 clang-cl。

我从这里下载了一个预构建的二进制文件(clang 3.7.0),Windows 64 位版本。

所以我尝试制作我的第一个程序,但遗憾的是它没有编译。相同的代码在 Visual Studio 2015 上编译(汇编语句除外)。

请帮助

这是我从 admin cmd 使用的命令(我在此vsvart32之前运行过):
clang-cl.exe -m64 C:\test\Source.cpp

这是我的代码:

这是clang-cl.exe输出:

编辑感谢@Martin Bonner,问题是我需要使用#define UNICODE. 但现在我还需要在 64 位上编译。我怎么做?

0 投票
2 回答
1069 浏览

c++ - 为什么 YouCompleteMe 在 dot 之后不起作用?

我已经按照安装指南安装了YouCompleteMe 。我在Windows机器上使用gVim 。基本的符号完成正在工作,但我无法从我的标题中自动完成。

如果我有:

那么它将找不到完成myVector.<smth like push_back etc...>

Vim 状态栏说:

或者


诊断

我开始诊断问题。:YcmDiags命令给出来自头文件的错误列表。由于YouCompleteMe使用clang不断编译源代码,因此我尝试使用 clang 编译我的文件。我也知道我应该在.ycm_extra_conf.py的标志中为 clang 指定命令行选项。我不知道 YCM 是运行clang.exe还是clang-cl.exe,但实际上我在从命令行运行vsvars32.bat后手动使用clang-cl.exe成功编译了我的 .cpp 文件。我没有成功使用clang.exe编译。

这是我的.ycm_extra_conf.py文件标志部分:

0 投票
1 回答
129 浏览

c++ - 编译器属性卡在函数类型上 - 这个 clang-cl 错误有解决方法吗?

在 Visual Studio 2015 中使用 C++ LLVM-vs2014 配置时,此静态断言失败。断言在 clang++、gcc 甚至 Visual C++ 中都不会失败。该thiscall属性卡在函数类型上,即使它不再适用。我已经提交了错误报告,但我想知道是否有办法在此期间强制删除该属性。可以thiscall去掉吗?

Microsoft Visual Studio 社区 2015 版本 14.0.24720.00 更新 1

0 投票
1 回答
11244 浏览

c++ - 在 Visual Studio 2017 中使用 OpenMP 3/4

尝试使用 OpenMP 3 的功能

在 Visual Studio 2017 中;我越来越error c3005: 'collapse' unexpected token encountered on openmp 'parallel for' directive

Visual Studio 2017 似乎只支持 OpenMP2。在支持 OpenMP4.5 的请求中,VS 团队表示

我们目前没有计划。

另一个答案说

幸运的是,在 OpenMP 4 支持下,clang-cl 已成为可行的替代方案。在最坏的情况下,您仍然可以启用 /fallback 选项。

如何在 Visual Studio 2017 中使用 clang-cl,什么是回退选项?

0 投票
1 回答
2656 浏览

c - 如何规避 Windows 通用 CRT 头文件对 vcruntime.h 的依赖

在尝试使用 Windows Universal C Run-Time (...\Windows Kits\10\Include\10.0.15063.0\ucrt) 在 Windows 上评估 Clang 时,我立即以未公开和意外依赖的形式面临意外的墙在微软的 Visual Studio 上。显然,一旦您包含任何标准 C 头文件,即使是最简单的 C 程序也无法立即编译,因为它们似乎最终都试图 #include vcruntime.h(这不是 UCRT 的一部分)。

我的问题是:

  1. 有没有办法在没有 Visual Studio 的情况下使用 Windows Universal C RTL SDK?
  2. 如果它不是有意或不可能的,那么为什么不将其称为“Microsoft VC 的 Windows CRT”-我错过了什么?
0 投票
1 回答
3901 浏览

c++ - 铿锵声、std::function 和 -fno-rtti

我通过 clang-cl 在 Windows 上使用 Clang 5,并且在尝试关闭运行时类型信息 ( -fno-rtti) 时遇到了问题std::function

这是我无法编译的示例:

命令行:

错误是:

这让我感到惊讶,有没有办法std::function在没有 RTTI 的情况下在 Clang 中使用 lambda?文档说只有target并且应该需要RTTI target_typestd::function我可以推出我自己的版本std::function,但不得不这样做似乎很可惜。

如果我使用带有编译器标志的 MSVC,它工作正常/GR-

0 投票
1 回答
690 浏览

qt - 如何在与动态 Visual C++ 运行时链接的 Windows 上构建 clang compiler-rt?

我想在 Windows 上将 clang-cl 与地址清理程序一起使用。尝试使用来自官方安装程序的预构建 llvm/clang 包时,我收到链接器错误,因为我的应用程序需要链接到动态 CRT (/MD) 而不是静态 CRT (/MT,llvm/clang 安装程序中的包具有编译器-rt 用这个构建)。

我想将它与 Qt 一起使用,因为我没有设法使用 /MT 构建 Qt 本身。

根据谷歌工程师的这些幻灯片,使用 /MT 构建 compiler-rt/asan 是可能的。

在构建 llvm/clang 以使用 /MT 构建 compiler-rt 时,与这些指令相比,我需要进行哪些更改?

0 投票
2 回答
1188 浏览

c++ - cmake 将 clang-cl 检测为 clang

我用 cmake 和 msvc 构建了boringssl 然后我尝试用 clang-cl 构建所以我在 vmake 参数中使用了 -T"LLVM-vs2014"

Clang-cl 使用 cl 参数但是 cmake 使用 gcc 样式参数而不添加 -Xclang

0 投票
2 回答
1168 浏览

c++ - 重构 MFC 消息映射以包含完全限定的成员函数指针

我有一个代码库,其中 MFC 消息映射以这种形式编写:

这在 MSVC 中编译得很好。当我想在 Clang 中编译相同的代码时出现call to non-static member function without an object argument错误,因为OnButtonAction它不是指定成员函数指针的正确形式。代码可以很容易地修复:

或者我们可以使用 BEGIN_MESSAGE_MAP() 宏中的 ThisClass typedef:

到目前为止一切顺利......唯一的问题是我在许多单独的文件中有数百个这些消息映射条目。有什么工具可以解决这个问题吗?一些晦涩难懂的 Visual Studio 魔法?还是可以在这里通过正则表达式使用替换?