clang++相关内容

C ++模块导入链导致奇怪的编译器错误

使用clang编译c ++-20模块时.导入文件时,导入另一个文件,然后再导入第三个文件时,出现奇怪的编译错误: //a.cppm#include导出模块a;导出std :: string getStuffA(){返回"a";} //b.cppm#include导入出口模块b;导出std :: string getStuffB(){返回"b"+ getSt ..
发布时间:2021-04-20 19:06:56 C/C++开发

使用clang将std lib导入为模块

我正在用clang进行模块的实验,并且希望将标准库作为模块而不是包含在模块中. 目前我正在这样做 #include#include 似乎您在msvc中应该能够导入标准库,例如 import std.core; 但是在使用clang时,这似乎没有实现或以其他方式实现. 我的问题是:是否可以像微软的建议那样导入stl-includes ..
发布时间:2021-04-20 19:06:42 C/C++开发

C ++ 20 #import“"语句:是否可以使用多个预处理的头文件

在C ++ 20中,可以用 代替包含标头 #include"header.h" 使用 #import"header.h"//编辑:这不是标准,请参阅注释 (这是针对无法完全转换为模块并且无法使用不带#的常规import关键字的旧代码) 我的问题是关于预处理.长期以来,每个翻译单元只能预编译和使用一个标头.(Clang似乎在级联包含文件时有一些特殊情况,我在这里不考虑) ..
发布时间:2021-04-20 19:06:39 C/C++开发

Clang 3.7.0抱怨类不是文字的,因为它不是聚合的,并且没有constexpr构造函数

以下代码在GCC(4.9.3)和VC ++(19.00.23506)中可以很好地编译,但是在Clang(3.7.0)中会出现这些错误. 错误:constexpr函数的返回类型'Foo'不是文字类型 注意:'Foo'不是文字的,因为它不是集合,并且没有复制或移动构造函数以外的constexpr构造函数 代码: #include#include ..
发布时间:2021-04-19 20:14:30 C/C++开发

如何在gcc或clang中的c ++ 20(启用模块)中包含多个预编译标头

在c ++ 20中,启用模块时,应该将每个include封装起来,以便顺序无关紧要,并且宏不会泄漏等. 显然问题 if 是否可以预编译多个标头是 我现在的问题是:如何您如何做到这一点:即:我如何首先预编译一组头文件,然后使编译器将它们(全部)识别为我的预编译头文件使用c ++ 20模块的翻译单元(使用linux命令行). 我想为g ++提供解决方案,但如果只有clang可行,那答 ..
发布时间:2021-04-19 20:13:54 C/C++开发

CMAKE:在clang/g ++和libc ++/libstdc ++之间切换

这是我的第一个cmake文件.我有一个同时带有clang和g ++的linux系统.还安装了libc ++.我在Mac(xcode)上进行开发,但部署到linux. 我正在编写一个cmake文件,可以在其中选择clang或g ++以及libc ++或libstdc ++.有4种可能的组合. 我想出了如何选择编译器并在其上强制使用c ++ 11,但是我不知道如何指定标准库.有什么建议吗? ..
发布时间:2020-11-11 21:14:34 其他开发

Windows 7(32位)上带有libstdc ++-6.dll的clang ++ 3.2

在Stackoverflow上大量搜索并搜索了我的问题之后,我仍然无法使用clang ++ 3.2运行.EXE文件。 “ clang ++”没有给出.BC文件编译成.EXE时出错。当我尝试运行.EXE文件时,它突然终止了程序。 有人可以帮助我吗? 我已经尝试使用-static-libstdc ++-6 / libstdc ++,但是问题仍然存在。 旁注:使用g ++生成的可 ..
发布时间:2020-10-01 23:06:51 C/C++开发

使用-static的未定义引用?

当我尝试使用 CFLAGS = -static 编译程序时,收到错误的未定义引用。 当没有静态编译时,完美地工作了。 我的问题是为什么静态错误会给我未定义的引用? 我用 pkg安装mysql57-server 并链接了 mysql_config --libs 帮助? 解决方案 链接静态库时,它们的顺序命令行问题(至少在FreeBSD上如此)。尝试在所有库之前/之后放置 ..
发布时间:2020-10-01 23:06:48 C/C++开发

曾经在旧版gcc中使用的C ++模板在clang ++中导致“阴影模板参数”错误

我使用gcc 3.x编写了大约08年的代码。我现在正在尝试使用clang 3.4进行编译,但出现了我不理解的模板错误。这个想法是声明任意维数和精度的固定维数vec类型,然后基于这些定义vecPair类型。我不了解“ a.convert()”内部的模板类型名称S的用法如何遮盖了模板参数;它意味着使用参数,而不是重新声明它。任何信息将不胜感激! typedef unsigned int Uns ..
发布时间:2020-10-01 23:06:46 C/C++开发

将std :: filebuf(FILE *)转换为使用libc ++

我有一些现有代码正在尝试使用clang 3.3和libc ++从 llvm.org 进行编译。简单的步骤即可检索另一个命令的结果。看来std :: filebuf不再提供FILE *构造函数,并且我尝试替换代码的所有想法都无法打开命令,即fb.is_open()始终返回false。 p> 根据我的发现,我将不得不使用 fb.open(cppcommand.c_str(),std :: ios ..
发布时间:2020-10-01 23:06:36 其他开发

是否/正在为GCC开发“ clang ++:-Wunused-lambda-capture”等效警告?

背景 我有时会遇到使用以下虚拟lambda捕获的代码(而不是例如(void)x; , ... foo(int / * x * /)或 ... foo([[maybe_unused]] int x) 在C ++ 17中),以纠正未使用的变量警告: void foo(int x) { [& x] {}(); } 现在,这并不是真正的补救方法,因为它通过了警告Lam ..
发布时间:2020-10-01 23:06:30 C/C++开发

lang似乎使用gcc

当我使用clang编译一个简单的hello world程序时,在elf64文件的注释中,我仍然找到与GCC相关的信息。为什么?我正在使用clang而不是gcc。 我正在使用ubuntu 16.04。 username @ ubuntu:〜$ clang ++ -stdlib = libc ++ test.cpp username @ ubuntu:〜$ objdump- -ful ..
发布时间:2020-10-01 23:05:19 其他开发