问题标签 [gcc4.9]

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

c++ - 结构初始化中的 gcc 4.9 错误?

我有代码:

我有 gcc 4.8.2 和 4.9.2。它可以编译得很好:

但是,它不能编译为:

编译器输出是:

这是一个错误还是我只是不明白什么?

0 投票
2 回答
177 浏览

c - gcc4.9,禁用包含文件跟踪,来自警告

我刚搬到 gcc4.9 。现在,当我运行 make 来编译我的程序时,我注意到消息的详细程度大大增加了。特别是在警告中,我收到了更多我不需要的信息,主要是这样的消息:

我的编译参数总是相同的“-g -O3”。我尝试了 -g0 和 -g1,但详细程度并没有降低。
所以想问一下,我如何设置 gcc 来抑制警告中所有那些过多的编译时消息,从“包含在文件中......”开始的所有内容以及之后的内容?
编辑:
我想我必须详细说明我想要实现的目标。
我想要警告,所以我不需要 -w 选项。
我很想看看:

不想看到:

我对在 a 中声明原始 sprintf 不感兴趣,由 b 调用(......谁实际上可能对此感兴趣......?!?)
以前的 gcc 版本没有这个问题,所以我最好的猜测, gcc4.9中必须有一些新选项来删除它(但我找不到它)
有人知道如何进一步删除从“包含在文件中......”开始的所有内容(在警告中)?
谢谢

0 投票
1 回答
784 浏览

c++ - 为什么 gcc-4.9.2 不能支持 std::string.insert(iterator, range) 返回迭代器

根据cppreference,C++11 应该支持:

但是当我尝试使用 g++ 4.9.2 编译以下代码时:

我收到以下错误(现场示例):

但是,Visual Studio 2013 和 Clang 似乎没有问题。

0 投票
1 回答
415 浏览

c++11 - Cygwin gcc.4.9.2 : 错误: '::lrintl' 尚未声明

这个问题与这个线程有关:cygwin support for C++11 in g++4.9.2

我遇到过同样的问题:

我应用了建议的补丁,只是得到另一个错误。包括 cmath 这里

返回此错误

我在 cygwin IRC 频道上寻求帮助:

遗憾的是,谈话就这样结束了。我不知道应该在哪里“删除 std::”,也不知道这是否可以解决问题。有人能帮忙吗?

0 投票
3 回答
2960 浏览

r - R 3.2、GCC 和自制软件

我最近需要安装 R 3.2 才能从 Bioconductor 获得一个包,但安装后,我收到以下错误:

果然,brew设置为使用gcc 5,所以我告诉brew使用4.9版本

这让 R 运行,但随后 R 会在包安装过程中失败(特别是当我运行biocLite('DESeq2').

从那以后,我尝试了很多事情,包括尝试安装 gcc 4.8(但我似乎无法让 R 使用它,即使是通过~/.R/Makevars)。即使没有安装 4.9,R 也坚持调用如上所示的路径。

R 的 Windows 版本似乎说 4.9 不适用于 3.2:

R-devel 暂时使用了一个基于 4.9.2 gcc 的新工具链,由 Duncan Murdoch 使用承包商编写的构建脚本组装而成。但是,与现有代码有太多不兼容的地方,这个工具链不会用于 R 3.2.0。有关构建和测试新工具链的详细信息,请参阅注释。

任何帮助将不胜感激!

编辑:我尝试按照@lmw. 的建议从源代码安装,但它失败了:

编辑 2:只是为了好玩,我尝试在r没有该--build-from-source选项的情况下进行安装,并且成功了。请参阅下面的解决方案。(我认为从源代码构建可能已经解决了gcc 5升级的问题,这让事情变得正常。我打算尝试它(事情终于又开始工作了......为什么要搞砸它?),但我想知道我是否可以删除我设置的变量~/.R/Makevars(再次参见下面的解决方案)。

0 投票
2 回答
92 浏览

c - 永无止境的快速排序

我试图在这样的数组上实现快速排序int64_t

这很好,但是,它在第​​一次分区后立即进入无限递归或无限循环。我该如何解决这个问题?

0 投票
5 回答
1727 浏览

c++ - 'stol' 使用 Visual Studio 而不是 gcc 引发的异常

以下代码在 Visual Studio 2013 而非 gcc 4.9.2 下运行时会引发异常。

报告的错误是:

'例外:stol 参数超出范围'

stol返回 along所以大小temp应该足够大以容纳返回的值。

任何人都可以解释这种行为。这可能是编译器错误吗?

0 投票
1 回答
1906 浏览

c++ - 如何在opencv中计算每秒帧数?

这是我的代码,它显示视频但 fps 很高。我想要这里的原始fps,但不知道该怎么做。观看一些教程,他们正在使用VideoCapture,我尝试使用它,但这给了我链接器错误undefined reference to 'cv::VideoCapture::VideoCapture(std::string const&)'..,尽管我正在链接所有库但错误是相同的。我正在使用Dev-C++ 5.11 (GCC 4.9.2),所以知道如何在(CV_CAP_PROP_FPS)这里使用 -

谢谢 :)

0 投票
1 回答
2469 浏览

c++ - 使用 -O3 时确定段错误的原因?

-O3当使用 GCC 4.8/4.9/5.1编译程序时,我无法确定段错误的原因。对于 GCC 4.9.x,我在 Cygwin、Debian 8 (x64) 和 Fedora 21 (x64) 上见过它。其他人在GCC 4.8 和 5.1上体验过。

该程序在 GCC 下-O2运行良好,在其他版本的 GCC 下运行良好,在其他编译器(如 MSVC、ICC 和 Clang)下运行良好。

下面是 GDB 下的崩溃,但我没有跳出来。源代码misc.cpp:26如下,但它是一个简单的 XOR:

有问题的代码在转换之前检查 64 位字对齐。从下的反汇编中-O3,我知道它与vmovdqa指令有关:

似乎 GCC 在 处使用 SSE 向量-O3,而不是在 处使用它们-O2。(感谢亚历杭德罗的建议)。

我要天真地问:vmovdqa对齐要求是否大于 64 位字?是这样,为什么当单词不是 128 位对齐时 GCC 会选择它?

是什么导致了这里的段错误?如何进一步排除故障?


另请参阅错误 66852 - vmovdqa 指令在 64 位对齐数组上发出,导致 segfault。它是针对此问题而提交的,因此目前尚未得到证实。




-O3反汇编和寄存器值。

和:


-O2在有问题的行上使用断点编译时,这里是反汇编。((word64*)buf)[i] ^= ((word64*)mask)[i];移至第 31 行:


misc.cpp,第 26 行是((word64*)buf)[i] ^= ((word64*)mask)[i];

0 投票
1 回答
1199 浏览

memory-alignment - ARM Cortex-M4、uint64_t 和 GCC 4.9 上的 va_arg

我有以下代码:

执行此操作时,我得到以下值:

arg1 = 0xABABABAB

arg2 = 0x24242424F0F0F0F0

arg3 = 0x010048E7

变量 arg3 似乎包含 Flash 中的地址。

我在某处读到这可能是由于堆栈对齐(这就是为什么您会看到所有这些对齐属性,尤其是为什么我将变量外部化到函数范围之外的原因)。我还确保我的代码是使用“-mabi=aapcs -std=c99”标志编译的。

我在调用函数时查看了 {r0-r3} 寄存器,它们似乎正确地包含了前 3 个参数(r2 和 r3 包含 64 位小端字的值)。

我注意到在异常期间(例如硬故障),可变参数功能正常。而且由于 MCU 在进入异常例程时设置为使用 8 位堆栈,因此这将是对正在发生的事情的解释。

任何有助于理解真正发生的事情将不胜感激?这怎么可能解决?