我正在尝试构建OSKit源代码。它最初是针对gcc 2.95.2写的,但在我的盒子里,我得到的是gcc 4.3.2。4.3.2不支持以下语法:
asm volatile("
pushfl
popl %0" : "=r" (eflags));
return eflags;4.3.2总是抱怨:
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的破解版本...
目前我不知道该怎么办……:(
有人能给我一些建议吗?@_@
发布于 2010-09-12 13:00:02
你可以在这里下载:http://ftp.gnu.org/gnu/gcc/
最正确的方法是下载旧版本并将其安装在PATH之外的目录中。
从第二版到第四版,GCC有了很大的变化……
发布于 2010-09-12 15:59:38
我相信你需要这样的东西:
asm volatile("pushfl\n\t"
"popl %0"
: "=r" (eflags)
);
return eflags;参考:GCC-Inline-Assembly-HOWTO
https://stackoverflow.com/questions/3693632
复制相似问题