我使用gcc.gnu.org提供的档案从源代码构建了一个g ++ v4.4。
但是生成的g ++无法编译我们的一些项目c ++文件。我收到的消息只是说:assembler error
。事实证明,汇编程序会对一些极长的符号名称进行扼流,例如:符号名称长度超过2k。
我错过了让它发挥作用的东西吗?
我非常感谢有关如何使其正常工作的建议!
环境:Debian-Lenny 64bit
编辑:提到的c ++文件正在使用g ++版本v4.2和v4.3进行编译。所以我不认为它是汇编程序中的错误(来自binutils v2.18)。只是为了确保我也尝试过binutils v2.20 - 但我得到了相同的错误信息。
编辑:我需要g ++ v4.4.x来比较不同g ++版本的输出(并且官方lenny存储库中没有g ++ v4.4)
答案 0 :(得分:1)
如果您的分析正确,似乎正确的做法是为binutils提交错误。或者gcc,如果事实证明长符号名称是由于gcc名称错误导致的错误。
当然,一个(最好是减少的)测试用例将帮助开发人员解决您的问题。哎呀,它可以帮助SO读者验证你的问题。
答案 1 :(得分:0)
你将不得不编译相应的气体而不是取决于lenny在他的冰箱里的东西(/ usr / bin)。
答案 2 :(得分:0)
为什么不a)升级或b)使用backports存档或c)从你的盒子上的当前Debian源重建?我很高兴用g ++ 4.2,4.3和4.4进行测试。
最坏的情况是,您可以在虚拟环境中安装新的Debian版本,例如chroot,Xen或Kvm实例,或VirtualBox内部。