通过使用g++提供的档案,我已经从源代码构建了一个gcc.gnu.org v4.4。
但是得到的g++不能编译我们的一些项目c++文件。我收到一条消息,简单地说:assembler error。事实证明,汇编程序会占用一些非常长的符号名,例如长度超过2k的符号名。
我是不是错过了什么让它开始工作的东西?
我将非常感谢关于如何使这个工作的建议!
环境: Debian-Lenny 64
编辑:上述c++文件在g++版本v4.2和v4.3中编译良好。所以我不认为它是汇编程序中的一个bug (来自binutils v2.18)。为了确保我也尝试过使用binutils v2.20,但是我得到了相同的错误消息。
编辑:我需要g++ v4.4.x来比较不同g++版本的输出(官方的lenny存储库中没有g++ v4.4 )
发布于 2010-01-08 23:46:31
如果您的分析是正确的,那么正确的做法似乎是为binutils提交一个bug。或者gcc,如果事实证明长的符号名是因为gcc的名字出现错误而造成的。
当然,测试案例(最好是简化的)将帮助开发人员解决您的问题。见鬼,它可以帮助读者验证你的问题。
发布于 2010-01-08 23:06:13
你必须编译相应的气体,而不是依赖于lenny冰箱里的气体(/usr/bin)。
发布于 2010-01-08 23:31:02
为什么( a)升级或( b)使用backports存档,或者( c)从当前的Debian源重新构建您的框?我很高兴地使用g++ 4.2、4.3和4.4运行测试。
最糟糕的情况是,您可以在虚拟环境(如chroot、Xen或Kvm实例)或VirtualBox中安装新的Debian版本。
https://stackoverflow.com/questions/2031410
复制相似问题