问题标签 [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.
linux - gcc-3.4 编译错误
我需要gcc-3.4
编译一些软件。
我Ubuntu-12.4
使用以下说明安装:--
https://superuser.com/questions/351742/how-to-install-gcc-3-4-on-ubuntu-11-10
sudo dpkg -i *.deb
我编译了简单的hello程序。然后在 rpi_exp.c 里,#include<stdio.h>
开始i get lots of error.
好像libc
没有找到。
请建议为此安装正确的软件包?
这里有很多库要安装哪一个:?:
http://packages.ubuntu.com/hardy-updates/gcc-3.4
https://ftp7.de.netbsd.org/pub/releases.ubuntu.com/ubuntu/pool/main/g/glibc/ http://packages.ubuntu.com/hardy-updates/i386/libc6-i686/下载
错误 : -
rpi_exp.c :---
我尝试安装 gcc-3.4 参考:---- http://simplyrisc.blogspot.in/2009/11/install-gcc-34-on-ubuntu-910.html
错误得到:---
- - - - - - - - - - - - - - [编辑] : - - - - - - - - - - --------
请帮助我出了什么问题。
我需要它来编译 QEmu。
我再次从以下链接重新安装,没有警告没有错误:-----
https://launchpad.net/ubuntu/+archive/primary/+sourcepub/277794/+listing-archive-extra
程序再次崩溃:-----
请帮助我出了什么问题。
gcc - gcc builtins 是否应该在编译步骤或链接器步骤中始终被解析?
在 Solaris 5.11 机器上运行 gcc 3.4.3 时,我看到内置函数在编译期间未定义,但是当 Solaris 链接器链接到 libgcc.a 时,会针对 libgcc.a 进行解析。
在另一个 Solaris 机器上的 gcc 4.5.2 上,相同的内置函数在 .o 的编译期间被解析,并且链接器不关心它们。
在 gcc 3.4.3 上编译的简化示例文件:
首先编译 ctzll.c,并检查符号:
现在编译 main.c,并链接对象:
因此,如果我理解正确,Solaris 链接器解析了 __ctzdi2(__builtin_ctzll 的内部表示)。
现在,在另一台 Solaris 机器上使用 gcc 4.5.2 进行编译:
该符号已在目标文件中很好地解析,并且已内联到 .o 程序集中,如下所示:
3.4.3 编译器的行为是否正确?我希望实际编译通过引用 64 位版本的 libgcc.a 来处理内置函数,如 4.5.2。编译器之间缺乏一致性导致我的项目出现上游问题,因为内置函数仍未定义,并且链接器没有解析符号,因为我没有链接到操作系统特定的 64 位库 (libgcc.a)。我不确定 3.4.3 编译器是否配置错误导致 .o 文件具有通过链接捕获的未定义内置函数,或者新编译器是否更智能,我需要将 64 位库添加到链接器以处理较旧的编译器。
3.4.3 似乎显示了一个有效的 libgcc.a,其中包含 _ctzdi2 的定义:
c++ - C++ 中的 hash_set 是如何工作的?
我不知道如何hash_set
在 C++ 中使用。我对这种语言非常陌生,所以我不明白如何做很多事情。如何使用 SGIhash_set
扩展使编译器最终编译无误?这是我的头文件:
当我尝试编译时,我得到:
- 我不知道“类范围内的非成员使用声明”是什么意思。
- 为什么编译器抱怨“预期的`;' 当我基本上遵循与SGI 在其网站上的相同示例时,在 '<' token" 之前?
- 我正在使用 gcc 3.4.6,所以我不能使用
unordered_set
- 我看过简单的 C++ hash_set 示例,但我不明白他们为什么使用
hash<int> H;
这相关吗?
我陷入了僵局,因为在咨询谷歌数小时后我真的无法弄清楚这一点。
c - 将 int 转换为在 C 中浮动时的奇怪行为
我对以下 C 程序的输出有疑问。我尝试使用 Visual C++ 6.0 和 MinGW32 (gcc 3.4.2) 编译它。
输出是:
我的问题是:为什么两条线不同?当您将整数值 2147483647 转换为 IEEE 754 浮点格式时,它会近似为 2147483648.0。所以,我预计两条线都等于 2147483648.000000。
编辑:值“2147483647.000000”不能是单精度浮点值,因为数字 2147483647 不能以 IEEE 754 单精度浮点格式精确表示而不会损失精度。
c++ - 具有与 GCC 3.4 类似的 GCC 3.3 的静态 const 变量
当使用 g++ 3.4.6(使用 ld 2.15.92.0.2)时,我可以写:
除了初始化其他常量外,几乎在所有地方都使用ConstantContainer::MyConstant1
和其他方法来代替作用域文字。
但是,当使用 g++ 3.3.6(使用相同版本 2.15.92.0.2 的 ld,尽管二进制文件和发行版不同)时,代码也可以正常编译,但在某些情况下,由于在任何时候无法解析引用,链接会失败使用“常数”:
我不知道是哪些独特的功能引起了这种行为。例如,不兼容的情况可能像这样简单:
IE。只有一小部分 uint 类型的静态常量成员,但它们没有资格被视为命名文字;同时,在其他情况下,即使是浮点值也可以。唯一明显的区别是范围级别(类嵌套),但在简化示例的一般情况下,这并不是真正的原因。
显而易见的解决方法是将上述类变成怪物:
但这很丑陋,不太干净,而且更容易出错,因为常量和容器类的数量很多。更重要的是,虽然就地声明和定义的常量可能已经优化,因为它们是真正的文字,但非常值得怀疑的是,当它们成为单例对象的一部分时,它们是否会被如此对待。
所以我想知道:GCC 3.3 及更高版本用于将一些静态 const POD 声明视为常量定义的确切规则是什么?
assembly - 组装 AT91SAM9261EK 时出错
我正在尝试使用 keil uVision 平台编译一个汇编程序。该程序应该在 AT91SAM9261EK 上运行(我已按预期修改了设置),但出现以下错误。
c - “未定义对 _spill 的引用”:什么是 _spill,为什么 gcc 想要访问它?
我正在使用自定义版本的 gcc 开发自定义嵌入式平台,该版本基于gcc-2.8.0 (egcs-2.91.02)
. 是的,它很旧。它适用于 CoolRISC C816 内核。
我有时会遇到一个奇怪的错误,在我的嵌入式 C 项目 gcc 的链接期间给我这个错误:
未定义的 _spill 引用
实际上,在这些特定情况下编译源文件时查看 gcc 生成的临时 *.s 文件时,我看到了这种指令:
移动 __spill+4,%a
我很惊讶,因为这个 _spill 错误只偶尔发生一次,在多个大型项目(20k+ LOC)上没有这个错误的迹象,也没有在 *.s 文件中对 _spill 的任何引用。
我已经有一个修复程序,包括在我的启动程序集文件中分配 _spill,但我想了解更多关于此的信息。
什么是“_spill”,我为什么需要它?另外,如果我必须静态分配它,如何知道我应该给它哪个大小?
编辑:按照评论中的建议,我查看了相应的 C 代码,并且似乎包含“_spill”的指令包的来源是这一行:
pStruct
本地声明的 typedef 结构(称为 Foo)上的指针在哪里: Foo *pStruct = &MyStruct
,其MyStruct
类型为 extern 变量,Foo
位于另一个文件中。
psConst
是另一个 typedef 结构(称为 Bar)上的 const 指针。
puRegister
是 Bar 声明类型的成员volatile uint8_t *
最后,CONST_VALUE
是来自枚举的常量值。
因此,这可能是一个问题,仅在连续大量取消引用或相关内容时才会发生。
c++ - 使用 __single_client_alloc 找到了一些旧代码 - 我该如何恢复它?
我在网上找到了一个我想使用的旧包。其中一个头文件包括以下几行:
我的 GCC_VERSION 是 7003,__single_client_alloc
显然早已不复存在。 single_client_alloc
也存在了一段时间,但我不知道它是否仍然存在,或者如果存在,它存在于哪个标题中。
看起来唯一实际使用 this 的地方是以下看起来很吓人的函数:
仅评论它们并恢复为默认值new
和delete
行为是否安全?或者这些是否在做一些超出使代码更节省内存的事情,在这种情况下我需要一个实际的修复?
基本上,是否有对此代码的修复,以便它可以在最新的 GCC 版本下工作?
cross-compiling - How to fix "Section .vectors overlaps section .data " | Adding ATmega1281 Support to Compiler
So, I was working on a project to add ATmega1281 architecture support to my Toolchain.
I was having avr-gcc-v3.3
, avr-binutils-2.13.1
, and avr-libc-cvs2003.
I have added the ATmega1281 support to Binutils-2.13
, Gcc-3.3
and Avr-libc-cvs2003
.
After the complete toolchain is created, when I try to compile a Hello-World program for the ATmega1281, I get the following errors.
Error Given when executed with -mmcu=atmega1281
I tried with other mcu's , they are working fine except the ATmega1281.
What can be the issue here ?