问题标签 [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.
c++ - 结构初始化中的 gcc 4.9 错误?
我有代码:
我有 gcc 4.8.2 和 4.9.2。它可以编译得很好:
但是,它不能编译为:
编译器输出是:
这是一个错误还是我只是不明白什么?
c - gcc4.9,禁用包含文件跟踪,来自警告
我刚搬到 gcc4.9 。现在,当我运行 make 来编译我的程序时,我注意到消息的详细程度大大增加了。特别是在警告中,我收到了更多我不需要的信息,主要是这样的消息:
我的编译参数总是相同的“-g -O3”。我尝试了 -g0 和 -g1,但详细程度并没有降低。
所以想问一下,我如何设置 gcc 来抑制警告中所有那些过多的编译时消息,从“包含在文件中......”开始的所有内容以及之后的内容?
编辑:
我想我必须详细说明我想要实现的目标。
我想要警告,所以我不需要 -w 选项。
我很想看看:
我不想看到:
我对在 a 中声明原始 sprintf 不感兴趣,由 b 调用(......谁实际上可能对此感兴趣......?!?)
以前的 gcc 版本没有这个问题,所以我最好的猜测, gcc4.9中必须有一些新选项来删除它(但我找不到它)
有人知道如何进一步删除从“包含在文件中......”开始的所有内容(在警告中)?
谢谢
c++ - 为什么 gcc-4.9.2 不能支持 std::string.insert(iterator, range) 返回迭代器
根据cppreference,C++11 应该支持:
但是当我尝试使用 g++ 4.9.2 编译以下代码时:
我收到以下错误(现场示例):
但是,Visual Studio 2013 和 Clang 似乎没有问题。
c++11 - Cygwin gcc.4.9.2 : 错误: '::lrintl' 尚未声明
这个问题与这个线程有关:cygwin support for C++11 in g++4.9.2
我遇到过同样的问题:
我应用了建议的补丁,只是得到另一个错误。包括 cmath 这里
返回此错误
我在 cygwin IRC 频道上寻求帮助:
遗憾的是,谈话就这样结束了。我不知道应该在哪里“删除 std::”,也不知道这是否可以解决问题。有人能帮忙吗?
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
(再次参见下面的解决方案)。
c - 永无止境的快速排序
我试图在这样的数组上实现快速排序int64_t
:
这很好,但是,它在第一次分区后立即进入无限递归或无限循环。我该如何解决这个问题?
c++ - 'stol' 使用 Visual Studio 而不是 gcc 引发的异常
以下代码在 Visual Studio 2013 而非 gcc 4.9.2 下运行时会引发异常。
报告的错误是:
'例外:stol 参数超出范围'
stol
返回 along
所以大小temp
应该足够大以容纳返回的值。
任何人都可以解释这种行为。这可能是编译器错误吗?
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)
这里使用 -
谢谢 :)
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];
。
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 位堆栈,因此这将是对正在发生的事情的解释。
任何有助于理解真正发生的事情将不胜感激?这怎么可能解决?