问题标签 [gcc7]

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 投票
1 回答
419 浏览

c++ - flto 与 gcc7.2 崩溃

我在以下代码文件中遇到了 getline 崩溃。我构建了 gcc7.2,因为系统更新不可用。

最小的例子:

在以下几行中,GCC_INSTALL_DIR 表示我自己的 gcc 安装的目录输出:

链接库:

libc 版本:

gcc7.2的配置选项

编译命令行:

Valgrind 输出:

我们必须使用_GLIBCXX_USE_CXX11_ABI=0,因为我们与旧库交互。

删除flto_GLIBCXX_USE_CXX11_ABI=0更改-std=c++17for-std=c++14可解决崩溃问题。

这是 gcc-7.2 的错误还是我错过了什么?我应该向 gcc 提交错误报告吗?

我宁愿避免禁用fltoc++17

编辑:gcc7.2 中存在的错误:https ://gcc.gnu.org/bugzilla/show_bug.cgi?id=82172

0 投票
2 回答
726 浏览

c++ - 使用 Nbody 测试对 GCC 7 与 VS2017 进行基准测试

代码取自Computer Benchmarks Game并粘贴在下面。

我修改为使用 SSE2 而不是 SSE3,因为 MSVC 不支持 SSE2。特别是,我将头文件“immintrin.h”替换为“emmintrin.h”

然后我发现代码使用了 SSE 算术的 GCC 扩展,所以我在 MSVC 版本中用 __mm_[add/sub/mul/div]_pd 替换了 +-*/。即从

我使用编译了 GCC(mingw-w64) 版本

和 VS2017 cli args 看起来像这样

我还在链接器选项中打开了 /LTCG。然后,我在 i7-4720HQ、12G 笔记本电脑上运行这两个版本 100,000,000 次。

GCC 版本在 7500ms 到 8500ms 之间波动,而 VS 版本持续超过 10,000ms,平均在 12,000+ms。

在深入拆卸之前,对这种性能差异有什么合理的解释吗?

0 投票
0 回答
112 浏览

gcc - 将 yaml-cpp 0.5.x 库与 g++ 7.1.0 链接

我正在尝试使用带有 g++ 7.1.0 的 yaml-cpp 0.5.3 编译一个相对简单的程序,并且出现链接器错误。最小的程序代码是:

这段代码在 g++ 4.9.0 下编译和链接很好,但在 g++ 7.1.0 下我得到了错误

我在这种情况下使用的编译命令是g++ tyaml.cpp -lyaml-cpp -o tyaml. 我可以确认库的路径没有问题——LIBRARY_PATH包含 libyaml-cpp.a 的正确路径,并且 g++ 4.9.0 使用相同的路径编译它。更完整的代码使用更多的 yaml-cpp,并且只有需要 std::string 的函数才会导致问题。

libyaml-cpp.a 是使用 g++ 7.1.0 编译的,所以我认为这不是库本身的问题。我已确认该库包含YAML::LoadFile符号,并采用类型std::string const &

我无法在我正在使用的系统上继续使用旧版本的 g++。

我已经尝试过 yaml-cpp 0.5.1 和 yaml-cpp 0.5.3,都遇到了同样的问题。我怀疑这是 std::string 以某种方式实现的问题。

0 投票
1 回答
422 浏览

macos - 带有 -mavx 标志的链接器错误 GCC7

使用 gcc7 或 clang 从 Intel 的 AVX 扩展编译 256 位矢量数据类型 (__m256d) 失败。我能够编译和使用 128 位向量(没有 -mavx 标志)。但是,一旦我尝试使用 avx 向量,要么找不到一些汇编程序命令定义(GCC7),要么存在链接器错误(clang)。我使用 port 来安装所有编译器或软件包。

该程序:

使用 gcc7:

用clang我得到一个链接器错误:

铛:

GCC7:

我的笔记本电脑 CPU:2,8 GHz Intel Core i7(应该支持 AVX),Mac OS Sierra 10.12.5

我还用端口(ld64-latest 274.2)更新了我的链接器,并安装并激活了 mp-clang-4.0。有任何想法吗?

0 投票
1 回答
131 浏览

c++ - `std::mem_fn` 如何在 gcc 7.1.0 中检测 noexceptness

使用 gcc 7.1.0std::mem_fn能够检测成员函数指针上的 noexcept-ness。它是如何做到的?我认为说明noexcept符不是函数类型的一部分?


更令人困惑的是,当我从https://wandbox.org/permlink/JUI3rsLjKRoPArAl中删除一种方法的 noexcept 说明符时,所有 noexcept 值都会发生变化,如此处所示https://wandbox.org/permlink/yBJ0R4PxzAXg09ef。当一个是 noexcept 时,所有都是 noexcept。如何?这是一个错误吗?

0 投票
4 回答
5805 浏览

c++ - 处理 gcc 的 noexcept 类型警告

考虑这个来自错误 80985的示例:

正如您所做的那样,在启用所有警告的情况下编译它会产生:

我到底应该如何处理这个警告?解决方法是什么?

0 投票
1 回答
1865 浏览

cmake - 解决 cmake 错误

我经常遇到这个问题:

如您所见,我正在使用GNU 7.2.1编译器。尤其是:

我不确定我正在运行 7.2.x 是否是问题所在。是否有一种解决方法可以让cmake您了解已安装 C 编译器?

编辑

当我尝试强制编译器设置时,出现以下错误:

0 投票
1 回答
317 浏览

gcc7 - 构建 FIX 8 时出错

使用 gcc 7.1

使用此 ./configure 构建 FIX8 时

当我运行 make 我得到这些错误(这很奇怪,因为我告诉它不要构建测试!)

我已经确认构建也失败

我刚刚验证它确实可以编译

它也可以编译

请指教。

0 投票
1 回答
270 浏览

c++ - 即使启用了 Wextra,gcc 也不会给出比较无符号整数 < 0 的警告

取下面的代码

where 函数f显然总是返回 0。用它编译它g++-7.2.0 -Wall -Wextra不会提示毫无意义的比较。然而,clang 很好地警告我们:

为什么会这样(我认为模板是问题的根源)并且gcc在这种情况下可以强制输出警告?

0 投票
5 回答
15611 浏览

c++ - c++1z动态异常规范错误

我正在尝试使用新的 GCC 版本 7.2.1 编译我的项目,但动态异常规范存在问题:

问题是这些错误来自我无法控制的第三方库。

有什么办法可以解决吗?据我所知,我不能告诉编译器用警告替换错误。使用--std=c++14不是一个选项,因为我想使用 C++1z 的新功能。