问题标签 [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 投票
0 回答
679 浏览

xcode4.6.3 - 在 Xcode 中添加 gcc 4.9 作为编译器选项

我刚刚安装了 gcc 4.9(支持 C11),并希望将其作为编译器选项添加到 Xcode 4.6.3 的构建选项中。我运行makeand make install,并且包都在那里(在/usr/bin/gcc. Running下gcc --version确认已安装 gcc 4.9 而不是旧版本。

当我进入现有 Xcode 项目的构建设置时,唯一可用的编译器选项是

  • 苹果 LLVM 编译器 4.2

  • LLVM GCC 4.2

  • 其他...

显然,必须使用“其他...”选项添加 GCC 4.9,尽管我不确定如何。我尝试输入 gcc ( /usr/bin/gcc) 的路径,尽管 other 的默认值根本不是路径:com.apple.compilers.llvmgcc42.

我也尝试按照这个问题的答案中的说明进行操作,但是我所在的机器根本没有该/Developer目录,因为我相信 Apple 将需要(并创建)该目录的开发人员工具集成到Xcode。

如何在 Xcode 中添加 gcc 4.9 作为编译器选项?

0 投票
2 回答
18263 浏览

c++ - gcc-4.9 未定义行为清理器

gcc-4.9 更改中它说:

UndefinedBehaviorSanitizer (ubsan) 是一种快速的未定义行为检测器,已添加并可通过 -fsanitize=undefined 启用。将检测各种计算以在运行时检测未定义的行为。UndefinedBehaviorSanitizer 目前可用于 C 和 C++ 语言。

我查看了这个问题(检测未定义行为的 C++ 实现?),但它似乎已经过时了。

这个链接(http://gcc.gnu.org/ml/gcc-patches/2013-06/msg00264.html)有一些关于它的信息,但它已经有几个月的历史了。

这是尝试将未定义的行为清理程序添加到 GCC。请注意,它是非常 alpha 版本;到目前为止,它并没有做那么多,目前它应该处理除以零情况、INT_MIN / -1 和各种移位情况(移位负值,当第二个操作数 >= 而不是 TYPE_PRECISION (first_operand) 时移位和诸如此类。(到目前为止,关于整数类型。)

从我读过的内容来看,它正在被移植到gccfrom LLVM.

我已经尝试过了(5 / 0),唯一的区别似乎是这个输出:

有没有人有更多关于它的信息或它有什么特点?

0 投票
1 回答
4629 浏览

c++ - 为什么 gcc 4.9 (trunk) 这么慢?

我已经用这些标志从svn构建了一个最新的香草 GCC :

首先是clang 3.4,然后我认为这可能是 clang 的错(有一点盐)并再次
使用重建了 GCC GCC 4.8.1,这导致了完全相同的结果。

当我尝试用大约. 150k 行代码。

这些是我得到的构建时间(-O3):

  • g++ 4.9: 48 秒
  • g++ 4.8: 31 秒
  • clang 3.4: 13 秒

我错过了configure一面旗帜还是GCC 4.9真的慢了那么多?!

0 投票
1 回答
1037 浏览

c++ - 递归 lambda 返回时的 gcc 4.9 内部编译器错误

我有一小段代码在clang repo head(3.5)中编译得很好,但在gcc 4.9 repo head中却没有。虽然这看起来像一个 gcc 错误,但在向 bugzilla 发送垃圾邮件之前,我想问你是否

  1. 这是有效的 c++1y 代码(处于当前草稿状态) - 仅仅因为 clang 编译它,它没有理由成为正确的代码,并且
  2. 如果有人可以重现此错误。

使用 clang 编译运行的代码片段如下:

http://coliru.stacked-crooked.com/a/acc691b9a407d6f2

但是使用

给了我前面提到的内部编译器错误: http: //pastebin.com/3fqV7xzC

如果没有长转储,它会显示:

g++-4.9 -o main main.cpp -std=c++1y main.cpp: 在 'composer::operator()(Func&&, Funcs&& ...):: [with auto:2 = float; Func = main(int, const char* )::; Funcs = {main(int, const char *)::}]': main.cpp:33:88: 这里需要

为了完整起见,这里是片段(完整的 main.cpp)

编辑:奖金!我根本不喜欢该代码-如果有人有更好且可能更快的方法来执行此操作,请考虑启发我...

编辑 2有谁知道如何让 coliru(或类似服务)使用 g++ 4.9?

0 投票
0 回答
555 浏览

linux - 为 msp430-elf 目标构建 gcc

我正在尝试为 msp430 构建 gcc-4.9。我已经构建了最新版本binutils并尝试gcc-4.9使用基本配置进行构建:

configure --target=msp430-elf --enable-languages=c,c++ --with-newlib=yes

但问题是 gcc 为我的机器构建自己x86-unknown-linux然后我认为它开始msp430使用新编译器构建目标但我已经安装了 gcc-4.8 并且只想要msp430-elf已经安装的目标4.8

注意:msp430目标仅在其中可用4.9,我只想为msp430不为我的主机构建 4.9,因为我已经安装了它。

首先构建失败,其次,即使它确实成功了,我也不想安装,x86恐怕make install会这样做。

的文档configure非常模糊,我非常感谢一些帮助。

0 投票
0 回答
455 浏览

android - 从 Linux/x86-64 到 Android/ARM 的“手动”交叉编译?

(也许是关于 SO 的边界问题,因为我没有显示任何源代码!)

我希望能够交叉编译(使用最新的 GCC 主干,即 4.9)C 中的 hello world 程序,在 Linux/Debian/Sid/x86-64 上为 Android 编译(4.4.2 在根 Nexus 7 上),并在 Android 终端模拟器中执行。我的目标是学习如何配置整个跨工具链,可能是 GCC、binutils 和MUSL libc。所以我特别不想为 Android 使用任何 SDK 或 NDK!

我猜我的 Android 是 GCC 和 binutils 的arm-linux-gnueabi GCC 4.9 主要目标平台。这个对吗?

然后,一旦我编译了我的(与 MUSL libc 静态链接)hello world,我应该如何将它传输到平板电脑上?(可能是 MTP)。

PS。我对 Linux(以及我贡献的 GCC 和 binutils)非常熟悉,但我是一个完整的 Android 新手。

PPS:真正的动机是我想为 GCC 交叉编译器编译一个插件,准备谈谈 GCC 插件

0 投票
1 回答
400 浏览

c++ - #define 上的 gcc 4.9 错误

以下行

被包含(来自另一个包含的文件)并被 gcc 4.9 抱怨:

奇怪的是,相同的头文件(compiler.h)包含在另一个编译成功的源文件中。有任何想法吗?编辑:我只是确保这always_inline不是预先定义的。供参考:

0 投票
2 回答
11638 浏览

homebrew - 使用 Homebrew 安装 gcc49

我正在尝试安装 Homebrew gcc49(GCC 4.9)。具体来说,我正在使用命令安装,

但是,正常执行此操作时,我收到一条错误消息,提示我缺少gmp4. 这就是它变得奇怪的地方。

如果我这样做brew install homebrew/versions/gmp4了,我会再次gmp4被告知丢失了。该库未安装。其他一些必需的库也会发生完全相同的事情。现在,我没有解决这种奇怪的行为,而是尝试运行

...这导致

真正让我困惑的是最后一行。我从未见过我尝试安装的任何软件返回的问题 - 发生了什么事,我该如何解决?

有趣的是,当我在具有相同 Homebrew 版本的桌面上尝试此操作时,只需运行 GCC 4.9 即可顺利安装brew install gcc49,甚至无需通过homebrew/versions.

0 投票
1 回答
2032 浏览

gcc - Upgrading from GCC 4.8.2 to GCC 4.9.0 without a complete rebuild

I installed the GCC 4.8.2 a couple of weeks ago. The installation process went well and I have GCC 4.8.2 at my Ubuntu system (12.04 64 bits). Now GNU just released the newer version 4.9.0.

My question is: Is there any way to upgrade my GCC to 4.9.0 without doing all process: configuration, building, checking and installation from scratch? Also, please tell me what is the benefit/purpose of gcc-4.8.2-4.9.0.diff.gz file? Is it like script/patch file to upgrade my compiler?

FYI, I don't have any plan to have two different versions of GCC at my system.

0 投票
1 回答
224 浏览

macos - 如何在 OSX 上仅使用“gcc”运行 gcc-49?

我最近安装了 gcc 4.9,之前默认安装了以前版本的 gcc。

当我输入 gcc 时,之前版本的 gcc 会运行。当我输入 gcc 时,如何让我新安装的 gcc 4.9 运行?