首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用最新的GCC构建老的源代码?

如何用最新的GCC构建老的源代码?
EN

Stack Overflow用户
提问于 2010-09-12 11:38:04
回答 2查看 3.9K关注 0票数 1

我正在尝试构建OSKit源代码。它最初是针对gcc 2.95.2写的,但在我的盒子里,我得到的是gcc 4.3.2。4.3.2不支持以下语法:

代码语言:javascript
复制
 asm volatile("
  pushfl
  popl %0" : "=r" (eflags));
 return eflags;

4.3.2总是抱怨:

代码语言:javascript
复制
error: missing terminating " character

有这么多这样的语法,有没有办法让4.3.2接受这个?或者,有没有更通用的方法让4.3.2表现得像2.95.2?或者在哪里可以下载到2.95.2版本的《gcc》?

谢谢!

更新

我的真正目标是构建OSKit。OSKit声称是用GCC 2.7.x或2.95.2编译的。我的Ubuntu 8.10是和GCC 4.3.2一起安装的。

我尝试了以下编译序列:

4.3.2内部版本2.95.2 -失败

4.3.2->3.3.6->2.7.2.3 -成功。

4.3.2 -> 2.7.2.3 -成功

3.3.6 -> 2.95.2 -失败

虽然我仍然没有2.95.2,但我至少有2.7.2.3。

但是OSKit仍然是2.7.2.3的破解版本...

目前我不知道该怎么办……:(

有人能给我一些建议吗?@_@

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-12 13:00:02

你可以在这里下载:http://ftp.gnu.org/gnu/gcc/

最正确的方法是下载旧版本并将其安装在PATH之外的目录中。

从第二版到第四版,GCC有了很大的变化……

票数 0
EN

Stack Overflow用户

发布于 2010-09-12 15:59:38

我相信你需要这样的东西:

代码语言:javascript
复制
 asm volatile("pushfl\n\t"
              "popl %0"
              : "=r" (eflags)
             );
 return eflags;

参考:GCC-Inline-Assembly-HOWTO

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3693632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档