问题标签 [gcc4]

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

c++ - 英特尔 tbb 中的奇怪错误

我已经构建了英特尔的 tbb,并且在我的 qt pro 文件中包含以下行:

但是当我尝试编译我的项目时出现错误:

还有什么我应该做的吗?我在任何地方都找不到任何 .lib 文件。

0 投票
1 回答
1198 浏览

java - 在 Windows XP 上使用 JNI Cygwin 代码退出时访问冲突 0xc0000005

我被这件事难住了。我的 JNI 代码可以在 Ubuntu 11 和 MacOSX 上运行,但会导致 Windows 出现问题。

JRE 版本:6.0_31-b05 操作系统:带有 gcc 4 的 Windows XP。修改 jni_md.h 以避免 _int64 编译错误:http ://www.vtk.org/pipermail/vtkusers/2006-May/085047.html

代码是使用 Maven 构建和运行的。运行我们在 Ubuntu 11 和 MacOSX 上完美运行的单元测试时会发生错误。

几点观察。

1) 有一个函数返回字符串。这将导致单元测试冻结。这是签名。

2)从被调用中取出函数并相应地修改单元测试,使单元测试没有错误地运行,但在退出时导致访问冲突。

堆栈跟踪:

非常感谢您的帮助。我是一个完整的 Windows 新手,这无济于事。我试图研究 Visual C++ 2010,但遇到了很多编译错误,所以决定我最好使用 Cygwin。我们在 BASH 中也有相当多的脚本逻辑,所以无论如何我们都需要 Cygwin 环境。

0 投票
1 回答
3816 浏览

c - GCC 4.6 中奇怪的诊断编译指示行为

我有一个 C 程序,其中有几个(尚未)使用的静态函数。我想禁用这些特定功能的警告。我不想禁用所有-Wunused-function警告。我正在使用 GCC 4.6。具体来说:

我正在遵循文档中的建议(使用pushand pop),但我无法让它工作。

我创建了一些简化的源代码来调查这个问题。我正在用gcc -Wall -o pragma pragma.c(where pragma.c) 编译它们。我的第一个版本pragma.c看起来像这样:

正如预期的那样,我在编译时得到了这个:

同样如预期的那样,我可以禁用这样的警告(然后编译成功):

但是后来,我尝试了这个:

当我编译它时,我得到了原始警告:

删除pop摆脱警告:

但我需要一种方法来禁用仅针对特定代码部分的警告。我无法做到这一点。

我很难想象这怎么可能是预期的行为……但是许多其他人已经使用了这个版本的 GCC,如果这是一个错误,它似乎不太可能进入发布版本。

尽管如此,我仍然无法看到这种行为与文档的一致性,该文档说“在一行之后发生的 pragma 不会影响由该行引起的诊断。”

我究竟做错了什么?是否有关于问题的更多信息,例如错误报告和/或有关可能的解决方法的信息?

0 投票
2 回答
196 浏览

c - 显示切换到现代 C 编译器如何帮助发现错误的示例?

我正在准备一个说明来说服人们从 GCC2 切换到 GCC4(作为 C 编译器)是一个好主意。

特别是,我认为它可以揭示现有的错误。我想举一些例子,但作为一名 Java 程序员,我对这种情况的经验是有限的。一个例子是返回类型检查,我猜。

还有哪些令人信服的例子表明切换到现代编译器可以帮助发现 C 代码中存在的错误?

0 投票
1 回答
129 浏览

c++ - QApplication 使用 gcc 4.7 编译但崩溃

从这里http://nuwen.net/mingw.html我下载了 gcc 4.7 并在 qt 中进行了设置。一切都在 qt 中编译得很好,不幸的是,当我运行我的应用程序(来自 qt)时它崩溃了。
有什么想法吗?
编辑(这是这个应用程序,OS Win7,Qt 4.8):

0 投票
3 回答
11841 浏览

c - gcc 抱怨:可变大小的对象可能未初始化

我看过这些,但他们没有回答我的问题:

可变大小的对象可能未初始化

C 编译错误:“可变大小的对象可能未初始化”

错误:可变大小的对象可能未初始化。但为什么?


我正在尝试编写一些相当可移植的c代码:


使用以下任一方法variable-sized object may not be initialized编译为c代码时出现错误:

  • GCC 4.3.4
  • arm-linux-gnueabi-gcc 4.4.5

如果我像cVS2008中那样编译它,我会得到一个稍微不同的error C2057: expected constant expression


我知道在这里,c代码编译器没有识别const int foo=13;出真正的常量;例如我们可能有


我还意识到,与 gcc 编译器不同VS2008编译器没有C99 可变长度数组的概念。而那个 MS 显然没有提到任何未来的支持。


然而,cpp使用gccMS编译器的代码编译完全不同/更聪明?!


而且我对gcc代码编译器的不理解是: c


(注意:在最后一种情况下,MS c代码编译失败;与 一致int bar[foo]={0};

0 投票
1 回答
8634 浏览

c++ - 错误:无法找到字符串文字运算符 "" SLASHES

我正在尝试使用 gcc 4.7 构建 qtCreator 2.3,但出现以下错误:

错误:找不到字符串文字运算符“”

我正在mingw32-make -lto用作 qtCreator 源目录。有什么想法吗?

0 投票
1 回答
257 浏览

assembly - GCC4 - ARMv5 寄存器分配

有没有办法让 GCC 以不同于该架构的标准 ABI 的方式生成使用寄存器的代码。

我正在使用 ARMv4 芯片(LPC2000),我需要我的快速中断更快。

我有一个 FIQ 例程,但我必须将 r0..r7 存储在堆栈上,这对于 FIQ 模式似乎毫无意义,因为它有自己的寄存器组 R8..r15。我想改用它们并节省 16 个指令周期,用于从堆栈中推送和弹出内容。

在任何人陈述明显之前:用汇编语言重新编写 FIQ 处理程序,是的,我知道我可以做到,这个问题更具体。

是否有 #pragma 或 __attribute__ 或开关告诉 GCC4 更改它在函数中分配寄存器的顺序?

0 投票
1 回答
1207 浏览

gcc - 如何使用 GNU ARM 工具链生成与位置无关的代码?

我正在为我的项目使用 ARM ELF 工具链。我正在开发一个需要独立于位置的引导加载程序,因为它会在重置时自行从闪存重新定位到内存。我已经努力弄清楚如何使用 GNU ARM 工具链编译与位置无关的代码,但似乎无法使其工作。

我尝试对编译器使用 -fpic 和 -fpie 选项,对链接器使用 -pie 选项,但是当我使用这些选项时,编译器会抱怨没有为 .got 或 .plt 部分定义任何部分。我不确定这些部分应该放在哪里,即在 BSS 或 TEXT 中。在谷歌搜索后,我认为我应该只使用 -fpie 但我不确定。

有这方面经验的人可以帮助我。我正在使用 GNU ARM 4.1.1

0 投票
1 回答
2376 浏览

c++ - c++ 为什么我的日期解析不是线程安全的?

此函数应采用日期和格式字符串以及return boost::posix_time::ptime.

例如:2012:06:14 02:50:58%Y:%m:%d %H:%M:%S

但是,如果我在多线程程序中调用它,有时会抛出异常,尽管formatlocalDate是正确且可解析的(我对每个调用都使用相同的日期)。我发现了一些关于std::stringstream/std::locale线程问题的信息,但没有最新的(我使用的是 gcc 4.6.3 64bit)。

这里有人有同样的问题:

在过去几天使用 Valgrind/drd 进行测试时,我发现我的代码中有很多部分会导致问题。例如,在调用一些 boost 日期时间转换函数时,我点击了 std::locale(),它不是线程安全的。

更新的代码没有问题:

但还是:为什么?