问题标签 [gcc4.8]
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++ - 如何在g ++中抑制'左移计数> =类型宽度'警告
(我的问题与这个问题基本相同,但我的需求不同,因此我需要不同的解决方案。)
我正在尝试使用测试驱动的开发,并正在编写一组测试来验证我的BIT(n)
宏的行为:
由于我对上述内容的测试包括预期通过和预期失败组件,因此我故意做坏事,例如
如果我的实现有问题 if BIT(n)
,它会输出一些有用的东西,比如
测试失败:'0 == (value64 = BIT(65))'(文件'tests/002.bit-hackery.cpp',第 12 行))
一切都按预期工作,但在编译过程中我收到了一个烦人的警告:
../../inc/bit-hackery.hpp:15:32:警告:左移计数 >= 类型宽度 [默认启用]
(这实际上很烦人,原因有两个:(1)我希望在这个测试代码中抑制它,因为我是故意测试这种情况,以及(2)在真实(非测试)代码中,我宁愿它被视为一个错误。但是,这个问题是关于前者的。)
我试过用一个#pragma
指令来抑制它,但我似乎找不到一个有效的:
有谁知道如何抑制这个特定的警告?
我的编译器版本是g++ (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4
c++ - 使用优化 O1 或更多的 g++(4.7.1 及更高版本)引发异常时如何处理多重继承?
我使用多个 GCC 尝试了以下代码,但在运行使用 O1 和 gcc4.7.1 及更高版本编译的代码时遇到了问题。
在上面的代码中,我是来自接口 Interface_2 的引用来引用 Master 类中的对象,这将导致崩溃
但如果我使用来自 Interface_1 的引用,它会起作用:
我只是得到预期的结果:
似乎我继承的第一个接口只能用于引用 Master 类的对象。我还从第一个接口继承如下:
然后来自 Interface_2 的引用结果很好。相反,我遇到了来自 Interface_1 的引用问题。
我已经尝试过使用高达 4.9 的 g++,但我不知道它是否适用于 5.x 版本。不幸的是,我不能只是去更改编译器的版本。由于限制和限制,我应该坚持使用 4.8。因此,我想知道你们是否知道解决这个问题的任何替代/智能方法。
c - GCC、重复的 typedef 和 DWARF
在过去的几年里,GCC 允许重复的 typedef,只要它们相互兼容。我面临的问题是 DWARF 调试扩展:似乎 GCC (v4.8) 将重复的 typedef 标记为未使用,并且不将它们包含在 DWARF 中。
例子:
结果:
如果我添加-fno-eliminate-unused-debug-types
了 typedef ,但我所有未使用的类型也会出现,这会增加目标文件的大小。
显而易见的解决方案是删除重复的定义,但这并不总是可行的。还有其他建议吗?
c - 使用可变参数时使用 GCC 编译错误
我有一个使用可变参数的函数,如下所示:
此代码可以很好地与 Windows/VisualStudio 2012 和“较旧”的 GCC 版本(如 CentOS 6 上的 4.7)一起编译。但是当我尝试使用 GCC 4.8.4 / Ubuntu 编译它时它失败了。在这里我得到以下错误:
有人知道这里有什么问题吗?为什么海合会抱怨?
谢谢!
c++11 - 调用绑定成员函数时出现分段错误
我有一个根据传入的值调用函数的类。该函数是无效的,没有参数,并且存储在映射中(以及其他一些信息)。
程序编译并且函数golden_retriever
按预期工作,但是当labrador
在 gdb 中使用以下信息调用程序 SIGSEVs 时(超出#5,它不在测试类中并进入实际代码):
编码:
其输出为:
bind
根据这篇文章和 StackOverflow 上已经提出的问题,我的使用似乎是正确的,那么我的代码有什么问题?
yocto - 使用 yocto 的 softfp 工具链配置
我已经使用 yocto 为 IMX6 Sabersd 构建了图像,如下所示。
在构建期间,它正在为 IMX6 获取 gcc-4.8 源代码和编译工具 chian。工具链使用硬浮点(使用“./arm-poky-linux-gnueabi-gcc -v”检查,输出有“--float-with=hard”),我的要求是工具链必须使用softfp。
这背后的原因是我使用的是与 hardfp 不兼容的 3rd 方预建库。因此,在编译期间,我收到如下所示的错误。
你能帮助我如何更改 yocto 中的配置以使用 softfp 编译工具链。
我找不到 yocto freescale 使用的是哪个版本,但我可以在“poky/meta/recipes-devtools/gcc/”下看到 gcc-4.8 食谱。
yocto - 仅使用 yocto 构建 gcc
我试图只使用 yocto 构建 gcc。我尝试使用“bitbake-layers show-recipes”,它显示了 gcc 的多个配方,bitbake -s 也是如此。
请指导我了解为什么有多个与 gcc 相关的配方以及我必须构建哪一个。
在 yocto 中,配方和包装是否存在一对一匹配。即对于创建每个包有一个对应的只有一个配方?
c++ - 非整数的非静态成员初始化器在 GCC 4.8 中不起作用?
尝试在 GCC 4.8 中编译以下代码:
使用g++ --std=c++11 -o main main.cpp
给出以下错误:
但是,它在以下情况下可以正确编译:
- 使用 GCC 5.2
- 替换
std::string
为int
(并在右侧使用整数值) - 不使用模板类
它是 GCC 4.8 中的错误吗?我找不到在我的服务器上安装 GCC 5.2 的方法(我需要为 CentOS 6.8 编译它)所以我相信我被困在这里。
c++ - 在传递给线程的 lambda 中调用函数
我正在尝试创建一个对象,该对象可以将函数及其参数提供给他的构造函数。然后这个类将在一个 lambda 中调用给定的函数,该函数被传递给一个线程。类似的东西
但我收到以下错误
我在这里做错了什么?任何帮助,将不胜感激。
c++ - 以线程为成员变量的类的移动操作
我正在尝试扩展一些人在这里帮助我的内容Call function inside a lambda pass to a thread所以我的工作类可以支持 move 构造函数和 move operator=
,但我的问题是我的类是this
通过复制(或引用)绑定的) 到线程,以便它可以访问类值。其中有几个atomic<bool>
,一个condition_variable
和一个mutex
。
但是当我尝试移动它时,因为线程绑定到另一个条件变量mutex
和atomic
s,我对它所做的任何事情都不起作用。我怎样才能解决这个问题?我是否需要使用更复杂的对象并移动它而不是 lambda,以便线程可以引用它?还是有其他选择。一如既往的帮助将不胜感激:)。
这是实现的片段(MWE)。
对不起,代码的大转储。