问题标签 [gcc3]

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 投票
2 回答
380 浏览

c++ - 这是 gcc 优化错误吗?

这是我的代码:

输出:

如果我用 -O0 编译上面的代码,一切正常。但是,如果我使用 -O2 编译它,则在func调用该函数后,将ptr变为NULL!

这是一个 gcc 错误吗?有没有人遇到过类似的错误?

我的 gcc 版本是:gcc version 3.4.5 20051201 (Red Hat 3.4.5-2)

0 投票
1 回答
1424 浏览

c - GCC 3.4.3 选项 -fstack-protector-all 的替代品?

我正在尝试-fstack-protector-all在 GCC 3.4.3 编译器中设置选项以启用一些堆栈粉碎保护方案。但是,在使用此编译时出现
错误:无法识别的命令行选项“-fstack-protector-all” 。所以似乎这个选项没有在 GCC 3.4.3 中实现?还是我错过了什么?

如果它没有在较旧的 GCC 编译器中实现,那么最好/最简单的替代方法是什么?

或者也许一些有用的代码模式可以在 C 代码本身中实现堆栈粉碎保护器?

谢谢

0 投票
2 回答
196 浏览

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

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

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

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

0 投票
1 回答
403 浏览

c++ - 带有 std::map.find 的 gcc 3.4 内部编译器错误

有没有人在 gcc 3.4 中遇到以下错误,boost 1.34.1 冲突的代码如下:

Symbol.h:97 引用一个 bool operator<( const Symbol& ) const 成员函数,它比较 Symbol 类型的两个实例。这在所有编译器上都可以正常工作,除了 gcc 3.4 会导致以下内部编译器错误。

/XYZ/include/XYZ/AAA/Type/Symbol.h:97:内部编译器错误:在 gen_subprogram_die 中,位于 dwarf2out.c:11278

我一直试图在网上找到任何指向上述失败原因的指针,但找不到任何解决方案。有没有人通过任何改变遇到过这个?或者有人指出为什么 gcc 编译器在那个时候死掉了?

谢谢你的帮助。

0 投票
1 回答
131 浏览

memory - C 程序的空间确定

我可以确定 C 程序占用的空间吗?目前我在 Windows XP 上使用 GCC 编译器。实际上我想检查 C 程序消耗了多少空间。

如果某个函数告诉我 C 中其他函数消耗的大小,那就太好了。

0 投票
1 回答
394 浏览

c++ - 基于 C++ 的 MEX 文件的 GCC 3.4 与 4.4?

使用 gcc 3.4 与 4.4 编译现代 Matlab MEX 文件有哪些权衡/顾虑?

我需要将一些现成的 C++ 代码 ( kdtree ) 编译为 MEX 文件,以便在 Fedora v16 下与 MATLAB (R2012a) 一起使用。我使用集群默认的最新 GCC 编译器 (4.6.x) 遇到了符号问题。并且系统管理员非常抗拒让Matlab官方支持的编译器gcc 4.4.x 可用。(不知道为什么)所以,他建议使用旧的(大约 2006 年)gcc 3.4.6 编译器。所以我的问题是,如果使用旧的 gcc 编译器有任何权衡或问题怎么办?表现?64位支持?线程安全(或真正的多个并行调用)?ETC?

0 投票
2 回答
318 浏览

c++ - GCC 3.4 中奇怪的递归模板模式(确切地说是 MoSync)

我目前正在尝试用 C++ 编写类似Artemis的游戏组件/实体系统。我计划让这个系统与一个跨平台工具一起工作,用于在 Android 和 iOS 上编写应用程序,称为MoSync

不幸的是,MoSync 目前使用的是旧版本的 GCC,并且在移植我在 Visual Studio 中测试过的库时,我遇到了一大堆错误。其中大部分我可以解决,但有一个模板错误,我无法理解。

我写了一个小例子

我的库使用 Curiously Recursive Template Pattern 来定义组件。此示例在 GCC 4.4 和 Visual Studio 2010 中编译良好。但是,当我尝试在 MoSync(使用 GCC 3.4.6)中编译它时,我收到此链接器错误

有没有一种解决方法可以让它在这个编译器中工作,还是我必须找到另一种方法来定义我的组件?

编辑* 事实上,我可以用一个更简单的例子来使这个错误发生:

给出这个错误

我想这可能与好奇递归模板模式根本没有任何关系。我该怎么做才能让它在 GCC 3.4.6 下编译?

0 投票
1 回答
582 浏览

gcc - Boost.Spirit 的内部编译器错误

我正在尝试使用 GCC 3.4.6 和 Boost 1.43 编译以下看似简单的代码,它会产生内部编译器错误:

生成的错误:

最后一行main()是产生这个错误。通过让expression规则在 astd::string::iterator而不是IteratorT.

非常感谢在仍然使用词法分析器的同时修复错误的任何帮助。

谢谢!

0 投票
3 回答
2304 浏览

c - gcc 报告“将永远不会被执行”关于该行:while(fgets(line, MAX_LINE, stdin) != NULL)

我正在寻找解释为什么要给我gcc这个警告。

我正在使用带有标志的gcc-3on进行编译,gcc 对我说这个警告:cygwin-Wunreachable-code

main.c:223:警告:永远不会被执行

就是这一行:while(fgets(line, MAX_LINE, stdin) != NULL) {

此代码位于根据命令行参数(由 解析)动态设置的if(exp) { }块内,请查看代码部分:expgetopt()

默认值为0. 但是1如果将-t标志传递给应用程序,它就变成了,如下所示:

因此,执行代码是有原因的。碰巧。

0 投票
1 回答
600 浏览

qemu - 用gcc3.4编译qemu neo

我意识到用 gcc4 编译 qemu 很麻烦和痛苦,所以我在我的 linux 机器中安装了 gcc-3.2 工具链,现在我正在编译 qemu,这些是我遵循并发出输出的步骤。

但是编译会因这些错误消息而停止,听起来它没有正确的系统包含路径,所以我用 -isystem 开关明确地给出了它。但仍然无法正确编译。

有什么解决方法吗?

- 提前致谢 -