我正在尝试构建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 build 2.95.2 --- failed
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 ......
打破目前我不知道该怎么做...... :(
有人能给我一些建议吗? @ _ @
答案 0 :(得分:1)
我相信你需要这样的东西:
asm volatile("pushfl\n\t"
"popl %0"
: "=r" (eflags)
);
return eflags;
答案 1 :(得分:0)