问题标签 [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 回答
819 浏览

attributes - 为什么使用 __attribute__ (section) 进行一些内存分配?

我有foo[NUMBYTES] __attribute__((section(".bar")));

为什么使用这个属性 .bar 部分?因为 foo[] 已经提供了一些内存空间。这是为了方便内存管理吗?

0 投票
0 回答
532 浏览

c++ - 在 OSX 上使用 Makefile 而不是 Xcode 编译时出现 G++-4.9 链接错误

我有一个 C++ 库项目,我已经在 Xcode 的舒适环境中编写了一段时间。我决定将项目设置为使用 make 进行编译,以便在时机成熟时更容易分发。该项目现在有大约 40 个头文件和 30 个 .cpp 文件。

错误:

生成文件:

标题:

和.cpp:

上面的代码是链接器说它可以从中找到符号的源文件。

问题是我可以使用 Xcode 编译此源并将其链接到库中,但不能使用 makefile。所以我担心我以某种方式弄乱了makefile。我在这两种情况下都使用完全相同的编译器 GCC 4.9.2,所以我认为这是 Xcode 和 makefile 之间编译器和链接器命令不同的问题。

我需要知道要更改什么才能使其链接?如果我可以提供更多信息,请告诉我。谢谢。

0 投票
1 回答
1009 浏览

c++ - Workaround for GCC 4.9 constexpr bug

I have the following piece of code which represents an actual bigger piece of code:

Compiling with g++ -o main main.cpp -std=c++11 and GCC/G++ 4.8.3 the expected output is received: B created: 2

However, with GCC/G++ 4.9.1 the code does not compile, output:

This is caused by a known bug in GCC 4.9: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59937 and in this older thread https://gcc.gnu.org/ml/gcc-bugs/2013-11/msg00067.html the usage of extern is proposed as a workaround. However, I am not able to get this workaround working.

Could you guys help me to make this code compile in GCC 4.9? Thank you!

0 投票
1 回答
914 浏览

linux-kernel - 编译器错误,3.0.101 内核使用 gcc 4.9

这是错误

fs/fat/dir.c: In function 'fat_dir_empty': fs/fat/dir.c:124:8: warning: 'de' may be used uninitialized in this function [-Wmaybe-uninitialized] 错误,禁止警告:dir .c:124

(*de)++; 是问题

我不明白,具有相同编码的 3.4 编译得很好。对此的任何帮助将不胜感激。

更新:阅读后,http : //lwn.net/Articles/529954/ 我正在运行 -O3 优化,这会影响 -Wmaybe-uninitialized

更新 2: vfat 构建为一个模块,没问题。只有作为内置的问题。我想知道为什么会这样?

0 投票
2 回答
227 浏览

c++ - g++ 4.9.2 对“this”的传递引用回归

这是指向实现代码的指针的最小化部分:

它可以在 G++4.8 和之前的版本上编译并且也可以工作。但是 G++4.9.2 编译器会引发以下错误:

但它可以通过小技巧来修复。如果我通过 ' &*this ' 而不是 ' this ' 那么它会进入可编译状态。

是 G++ 回归还是新的 C++ 标准功能消除了向后兼容性?

0 投票
3 回答
502 浏览

c++ - g++4.9 和 g++5 在初始化列表中缩小时的不同行为

考虑这段代码:

根据 C++11 标准,它不应该编译(大括号初始化中的变窄是禁止的。)

现在,编译g++4.9.2 -std=c++11只发出警告

删除-std=c++11标志会导致有关大括号初始化的警告,但不会缩小:

另一方面,g++5不会编译它,前提是您使用g++5 -std=c++11. 但是,如果-std=c++11省略了,那么甚至可以g++5愉快地编译它,只给出与大括号 init 相关的警告,而不是缩小:

上面的行为似乎有问题,g++4.9不应该编译代码,g++5如果你忘记指定-std=c++11. 这是一个已知问题吗?

0 投票
1 回答
234 浏览

c++ - 在模板类与非模板类中的 lambda 属性中捕获此内容

我已经成功编写了一个像这样的类,在定义为所述类的非静态属性的 lambda 中捕获它:

这编译并且似乎运行得很好。

但是,使用模板类,它不再起作用:

$> g++ -std=c++1y custom_deleter_template.cpp
~/test custom_deleter_template.cpp:在'struct S::'的实例化中:custom_deleter_template.cpp:9:3:来自'S< >::S() [ with = int]' custom_deleter_template.cpp:24:10:
从这里需要 custom_deleter_template.cpp:15:35:内部编译器错误:在 tsubst_copy 中,在 cp/pt.c:12569
std::function del_{[this](int *ptr) ^ 请提交完整的错误报告,并在适当的情况下提供预处理源。有关说明,请参阅。存储在 /tmp/pyro/ccxfNspM.out 文件中的预处理源,请将其附加到您的错误报告中。

在提交错误报告之前(我不能这样做,他们阻止了帐户创建),根据标准所说,它不编译是否正常?

编译器是 g++ (Ubuntu 4.9.2-0ubuntu1~14.04) 4.9.2,使用标志 -std=c++1y。标志 -std=c++11 也会发生同样的事情。

0 投票
0 回答
61 浏览

c++ - C++ 函数给出错误

我创建了一个函数 find_all,它返回xrSTL 容器中元素的所有位置的位置(迭代器)向量ar。这段代码有什么问题。

该代码在 Visual C++ 2015 中编译,但在 gcc 编译器中出现以下错误:错误:

Ideone 链接

我想简单地纠正它。

0 投票
1 回答
799 浏览

homebrew - Pkg-config 0.28 未在 OSX 10.10.2 上构建

最近我清理安装了 Yosemite 10.10.2

我还使用安装了 gcc

现在我正在尝试从源代码构建和安装pythonand openmpi,因为以前我遇到过gfortranand的问题clang

所以我做了

带有变量和别名:

仍然收到以下错误:

clang我的理解是和gcc-4.9配置之间存在冲突。

我可以暂时解决它:

因此,它不会从源代码构建并使用 clang 配置。

我看到 Xcode 仍在包含和库路径中,我认为这会阻止与 gcc-4.9 的链接。

如何仅pkg-config使用安装gcc-4.9

0 投票
2 回答
969 浏览

c++11 - 使用 GCC 在继承的模板静态成员函数上使用 decltype

我在coliru.stacked-crooked.com上有以下工作代码。

正如static std::false_type check(...)重复的那样,我想知道我们是否可以分解它。例如在基类中。正如Jonathan Wakely所指出的,我在问题底部的尝试使用 Clang 编译,但不使用 GCC。

我尝试了很多可能性,但似乎无法decltype使用 GCC 来继承模板静态函数。

问题:
1. GCC-4.9 在这一点上是否符合 C++11 标准?
2.在继承的模板静态成员函数上使用符合 GCC 的解决方法是什么?decltype

我的尝试之一

编辑:如Jonathan Wakelytemplate<typename U>所指出的那样添加

GCC-4.9.2 在coliru.stacked-crooked.com上失败

Clang-3.4.1 在godbolt.org上成功