问题标签 [gcc8]

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 回答
281 浏览

gcc - 如何为 GCC 8.1.0 添加调试符号?

我已将使用的 GCC 版本从4.2.1更新到8.1.0。(这是我唯一改变的东西)

问题是,在我这样做之后,调试符号就消失了。

我只使用“ -g ”选项运行 GDB。

使用 gcc v8.1.0,运行 gdb 时没有调试符号:

v4.2.1 是这样的:

如何使 gcc8.1.0 的 dbg符号gcc4.2.1

0 投票
1 回答
165 浏览

c++ - 为什么为不返回任何内容的函数声明返回值只会导致 gcc8 中的运行时崩溃

在以下代码中,函数被声明/定义为int setYear(int year_h){year = year_h;}(而不是void setYear(...),导致 gcc 8 中的运行时崩溃并且-O[X]仅带有标志。

具体问题:

  1. gcc 8 中发生了什么变化,因为它在 gcc 7 中工作?
  2. 我可以使用哪些标志(如果有)在 gcc8 中生成编译错误(而不是警告)?

主.cpp:

运行时崩溃:

适用于:

或者

编辑:在 C++ 中省略返回语句的问题回答了我的第二个问题,但不是第一个问题(关于 gcc 7 和 gcc 8 之间的区别)。

0 投票
2 回答
204 浏览

c++ - How to fix compilation error with gcc8 while specializing swap function/

I'm trying to compile code which specialize the function std::swap for my class. But I'm facing an issue that occurs because of rvalue constructor (it works when I comment the line)

I am compiling with g++ (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3) and g++ -std=c++14 -Wall those options

I have the following error message :

0 投票
1 回答
127 浏览

c++ - stable_clock::now() 返回类型对 gcc 无效

我有以下代码:

这适用于 Visual Studio 2019,但使用 gcc 8.3 我收到以下错误:

这段代码似乎是标准的,那么可能有什么问题?

0 投票
1 回答
154 浏览

c++ - 这是 GCC 中可能存在的错误吗?

我的团队有一个内部概念的实现,我们遇到了似乎是 GCC 的错误。以下代码将在 Visual Studio 2019 上运行,但在 GCC 8.3 上失败:

Godbolt 上的 GCC 8.3 和我们的 WSL 安装返回以下错误:

关于这可能是什么的任何帮助?

0 投票
1 回答
217 浏览

c++ - 在类内将不完整类型的 unique_ptr 初始化为 nullptr 时使用 gcc 编译错误

我正在使用带有 unique_ptr 的 pimpl idiom 编写一些代码。当我尝试使用类内初始化将unique_ptr默认设置为nullptr时,gcc给出了编译错误,而clang和msvc都成功编译了代码。如果我不使用类内初始化,错误就会消失。

当我编译上述代码时,gcc 抱怨“错误:'sizeof' 对不完整类型'B' 的无效应用”。我已经尝试过 gcc 8.3 和 gcc 9.1 都没有成功。这是编译器错误吗?谢谢!

编辑: 我按照@eerorika 的建议进行了尝试。如果头文件和源文件合并为一个文件,可以正常编译,但不能分开。

编辑 确认是编译器错误并已在 gcc9.2 中修复。

0 投票
5 回答
880 浏览

c - 对二维数组进行别名时 strlen 的意外优化

这是我的代码:

使用 gcc 8.3.0 或 8.2.1 与任何优化级别,除了我期待的-O0输出。编译器决定是有界的,因此永远不能等于或超过被除的值。0 22 2strlenb[0]

这是我的代码中的错误还是编译器中的错误?

这在标准中没有明确说明,但我认为指针出处的主流解释是,对于任何 object X,代码(char *)&X都应该生成一个可以迭代整个的指针X——即使X碰巧有这个概念也应该成立子数组作为内部结构。

(额外的问题,是否有一个 gcc 标志来关闭这个特定的优化?)

0 投票
0 回答
48 浏览

c++ - 将应用程序从 gcc4.9.3 迁移到 gcc8.3.0 时出现 std::string 分配器编译错误

使用 gcc 8.3.0 编译我的应用程序时出现以下错误

base_types.hpp 的第 13 行,这是我的代码的第一行,其中错误堆栈上只是一个包含语句:

所以我不确定这是在哪里或为什么会中断。谢谢

0 投票
0 回答
139 浏览

c++ - 链接器错误:丢弃部分中静态 constexpr 初始化程序列表成员变量的定义

我有类似于以下代码的内容:

包括/Group.hpp

包括/foo.hpp

src/foo.cpp

src/main.cpp

使用 编译时 g++ -std=c++17 -O1 -Iinclude src/foo.cpp src/main.cpp,会产生以下错误:

可以肯定的是,c++filt _ZN5Group1vE返回Group::v.

foo()当在 main 中注释对其中一个或std::vector构造函数的调用时,错误消失。我在这里触及了一些未定义的行为还是编译器中存在错误?

我正在使用编译器g++ (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2)

注意:代码编译没有错误clang++ (clang) version 7.0.1 (Fedora 7.0.1-6.fc29)

0 投票
1 回答
195 浏览

c++ - GCC 8.3 无法编译 std::bind_front

g++有可能以比我指定的旧标准编译我的程序吗?

我编译:

并且编译器无法识别 bind_front 函数(我包括在内<functional>)。编译器版本是 GCC 8.3。