问题标签 [gcc5]
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.
c++ - g++4.9 和 g++5 在初始化列表中缩小时的不同行为
考虑这段代码:
根据 C++11 标准,它不应该编译(大括号初始化中的变窄是禁止的。)
现在,编译g++4.9.2 -std=c++11
只发出警告
删除-std=c++11
标志会导致有关大括号初始化的警告,但不会缩小:
另一方面,g++5不会编译它,前提是您使用g++5 -std=c++11
. 但是,如果-std=c++11
省略了,那么甚至可以g++5
愉快地编译它,只给出与大括号 init 相关的警告,而不是缩小:
上面的行为似乎有问题,g++4.9
不应该编译代码,g++5
如果你忘记指定-std=c++11
. 这是一个已知问题吗?
c++ - g++5 中 std::unordered_set 编译错误的不完整类型,在 clang++ 中编译
考虑与前面的 SO 问题C++ 循环依赖混淆与邻接表表示相关的代码
此代码在使用 g++4.9.2 或 g++5 时无法编译,但使用 clang++3.5 编译。
g++吐出的错误以
error: invalid application of 'sizeof' to incomplete type 'Node'
: std::aligned_storage<sizeof(_Tp), std::alignment_of<_Tp>::value>
问题:声明?Node
时必须是完整类型std::unordered_set
吗?在这种情况下,看起来 g++ 或 clang++ 都是错误的。
PS:我知道可以通过使用 astd::shared_ptr<Node>
来避免这种情况,但是想了解上面代码中的行为。
arm - 在 gcc 版本 5.0.1 上启用对 aarch64 (armv8-a) 的 fpu 支持
我正在使用 HPLinpack 基准测试 Cortex-a57 的 GFLOPS 性能,它几乎没有达到 1 FP/周期(考虑到 ~2.4 GFLOPS @ 2.4 GHz)。由于旧的编译器(gcc 4.9.1)抱怨有几个版本的 -mfpu= 选项,我尝试如下配置 gcc 5.0.1
../gcc/configure --with-gmp=/tmp/gcc --with-mpfr=/tmp/gcc --with-mpc=/tmp/gcc --with-libelf=/tmp/gcc --enable-语言=c,c++,fortran,go --target=aarch64-linux-gnu --prefix=/opt/another-gcc5 --with-arch=armv8-a --with-cpu=cortex-a57 --with- fpu=霓虹灯-fp-armv8
配置进行得很好,但是当调用 make 时 --with-fpu 标志在 gcc/gcc/config.gcc 中崩溃:4351
echo "此目标不支持 --with-$option。" 2>&1
由于 gcc/gcc/config.gcc 3464:3467 中定义的 aarch64 架构的 supported_defaults
supported_defaults= case "${target}" in aarch64*- - ) supported_defaults="abi cpu arch"
为什么不支持 fpu 选项?任何建议表示赞赏,我以前从未这样做过,我有点迷茫:)
c++ - 为什么g ++ 5在自动类型推导中推导对象而不是initializer_list
我最近遇到了这段代码:
它使用 g++5.1 编译良好,但在 clang++ 中失败(同时使用-std=c++11
和-std=c++14
,结果相同)。原因是clang++ 推导出 as 的类型b
,std::initializer_list<Foo>
而g++5.1
推导出 asFoo
。AFAIK,这里的类型确实应该是(确实违反直觉)std::initializer_list
。为什么 g++5 将类型推断为Foo
?
c++ - 如何在 Linux (Ubuntu) 上安装 GCC 5.1
我想在 Ubuntu 上试验新的 GCC 5.1 C++ 编译器。
如何在 Ubuntu 上安装 GCC 5.1?
我更喜欢某种形式的预构建可执行文件,我可以下载和安装,而不是下载 GCC 的源代码并从中构建整个 GCC 5.1。
此外,由于我阅读了在 GCC 5 中更改的 libstdc++ 的 ABI,是否也必须使用 GCC 5.1 安装新版本的 libstdc++?
regex - g++ 5.1 中的正则表达式功能
所有的正则表达式功能最终都在 gcc5.1 中实现了吗?以前的版本只有部分支持。
c++ - 无法使用 GCC 5.1 工具链编译 C++11 源代码
我正在尝试在 Ubuntu 上使用 GCC 5.1 编译一个使用 C++11 功能编写的库。但是,它抱怨std::unique_ptr
没有定义。
CXX 标志:
输出:
但是,我可以在 OSX 上编译完全相同的代码。
CXX 标志:
我究竟做错了什么?
c++11 - Cxx11 ABI 用于单个函数调用?
是否可以定义一段代码用 Cxx11 编译,但其余部分使用 libstdc++6 的兼容性 ABI?
例子:
我的整个系统都是在兼容模式下编译的,除了一个用 Cxx11 编译的外部库。是否存在一个预处理器,允许您使用新的 ABI 手动选择要编译的代码的某些部分,就像您在编译器行上定义 D_GLIBCXX_USE_CXX11_ABI=1 一样?
调用方法call_routine_ext_library时出现的错误是:
因为该库包含以下内容:
所以我希望在编译传递给该方法的字符串时可以强制编译器使用 Cxx11 模式。当您的代码在没有它的情况下编译时,是否有任何方法可以链接到使用 Cxx11 编译的二进制文件?
clang - 哪个IDE为了安装和使用带有C++ 14 constexpr 松弛的编译器?
如果这个问题超出主题,我深表歉意,但这是 C++14 程序员的可访问性问题。
今天我在我的电脑(Windows 8.1/64bit/x86)上更新了 Qt v5.4,它现在支持 gcc 编译器 v4.9.2。但是我已经看到自 gcc v5.1 以来可以使用 constexpr 松弛(我真的很感兴趣)。
谷歌搜索显示:
- clang 是 C++14 最新特性的更好编译器(v3.6 甚至可以处理实验性 C++17)
- clang 不太适合 Qt 库
- gcc和clang“数据”都可以下载,但我不是专家......
所以我在问如何在 Windows 8.1 上使用适当的编译器获得免费的 IDE。
如果我为我的 C++14 实验解雇 Qt,Codeblocks 是更好的解决方案吗?
在安装过程中是否有任何其他 IDE 已经包含足够的编译器?
我在哪里可以找到安装此类编译器的帮助?
gcc - 配置 gcc 时 --enable-gold 的用途
从源代码构建 gcc 5.1 时,配置脚本列出以下选项:
这是什么意思?如果盒子上安装了黄金,它是否告诉 gcc 使用黄金作为链接器?如果是这样,它是否期望黄金成为默认链接器,或者我应该通过
选项?
我在在线 gcc 配置文档中找不到对 --enable-gold 的引用。
谢谢!