问题标签 [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.

0 投票
3 回答
502 浏览

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. 这是一个已知问题吗?

0 投票
1 回答
418 浏览

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>来避免这种情况,但是想了解上面代码中的行为。

0 投票
1 回答
3243 浏览

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 选项?任何建议表示赞赏,我以前从未这样做过,我有点迷茫:)

0 投票
1 回答
503 浏览

c++ - 为什么g ++ 5在自动类型推导中推导对象而不是initializer_list

我最近遇到了这段代码:

它使用 g++5.1 编译良好,但在 clang++ 中失败(同时使用-std=c++11-std=c++14,结果相同)。原因是clang++ 推导出 as 的类型bstd::initializer_list<Foo>g++5.1推导出 asFooAFAIK,这里的类型确实应该是(确实违反直觉)std::initializer_list。为什么 g++5 将类型推断为Foo

0 投票
1 回答
19959 浏览

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++?

0 投票
1 回答
149 浏览

regex - g++ 5.1 中的正则表达式功能

所有的正则表达式功能最终都在 gcc5.1 中实现了吗?以前的版本只有部分支持。

0 投票
1 回答
8277 浏览

c++ - 无法使用 GCC 5.1 工具链编译 C++11 源代码

我正在尝试在 Ubuntu 上使用 GCC 5.1 编译一个使用 C++11 功能编写的库。但是,它抱怨std::unique_ptr没有定义。

CXX 标志:

输出:

但是,我可以在 OSX 上编译完全相同的代码。

CXX 标志:

我究竟做错了什么?

0 投票
0 回答
326 浏览

c++11 - Cxx11 ABI 用于单个函数调用?

是否可以定义一段代码用 Cxx11 编译,但其余部分使用 libstdc++6 的兼容性 ABI?

例子:

我的整个系统都是在兼容模式下编译的,除了一个用 Cxx11 编译的外部库。是否存在一个预处理器,允许您使用新的 ABI 手动选择要编译的代码的某些部分,就像您在编译器行上定义 D_GLIBCXX_USE_CXX11_ABI=1 一样?

调用方法call_routine_ext_library时出现的错误是:

因为该库包含以下内容:

所以我希望在编译传递给该方法的字符串时可以强制编译器使用 Cxx11 模式。当您的代码在没有它的情况下编译时,是否有任何方法可以链接到使用 Cxx11 编译的二进制文件?

0 投票
1 回答
331 浏览

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 已经包含足够的编译器?

我在哪里可以找到安装此类编译器的帮助?

0 投票
1 回答
2390 浏览

gcc - 配置 gcc 时 --enable-gold 的用途

从源代码构建 gcc 5.1 时,配置脚本列出以下选项:

这是什么意思?如果盒子上安装了黄金,它是否告诉 gcc 使用黄金作为链接器?如果是这样,它是否期望黄金成为默认链接器,或者我应该通过

选项?

我在在线 gcc 配置文档中找不到对 --enable-gold 的引用。

谢谢!