【发布时间】:2011-04-29 22:22:40
【问题描述】:
我尝试将一些代码移植到 Mac OS X 上。
程序使用“ttmath”库,一个头大的头库。 这个库在 windows 和 linux 上都可以正常工作,但是当我尝试在 Mac 上编译和运行它时,总是会出现以下错误消息:
"can't find a register in class 'BREG' while reloading 'asm'".
我发现一些文件说这个问题是由于旧版本的GCC编译器(build 5488)造成的,但是我更新了GCC后仍然出现这个消息。
目前我的 GCC 版本是:
i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5490)
操作系统是: Mac OS X 版本 10.5.8
我找不到有关如何解决此问题的任何有用信息,有人可以帮助我吗?非常感谢!
【问题讨论】:
-
我在使用 -fpic 编译非 PIC 安全的汇编代码时看到了这个错误。也许 Mac 的 gcc 默认启用该选项,并且 ttmath 代码不是 PIC 安全的? (有关错误究竟来自何处的更多详细信息会有所帮助。)
-
您知道,GCC 现在有 4.5 版。更新到 4.0.1 仍然很旧。
-
如果您使用当前的 Xcode (3.x),那么您将获得 gcc 4.2。我认为这可能需要您升级到 OS X 10.6。
-
致 vanza:谢谢!我试图把它关掉,它的工作原理!现在我只需要弄清楚如何在 Qt Creator 中指定这个选项 :)
-
致 DeadMG:苹果尚未为 MAC 用户提供 gcc 4.3 或更高版本。 To vanza:我使用Xcode 3.1.3,但它仍然是4.0.1 >
标签: c++ macos shared-libraries gcc4