DMD在Ubuntu 12.10 64位上使用强化GCC生成可执行段错误


十二*
2025-03-16 07:22:46 (1小时前)
  1. libmsgpack-dmd-dev libmsgpack-dmd-doc;

sudo apt-get install -y vibe vibe-doc;

一切正常。

但…

然后在我安装了我最喜欢的东西后突然出现

软件
</跨度>
从一些Ubuntu PPA的代码dmd

dummy @ lappis:〜$ dpkg -S /usr/bin/gcc-4.7
转移

硬化
</跨度>
-wrapper来自:/usr/bin/gcc-4.7
转移

硬化
</跨度>
-wrapper to:/usr/bin/gcc-4.7.real
GCC-4.7,

硬化
</跨度>
-wrapper:/usr/bin/gcc-4.7

2 条回复
  1. 0# 易米烊光 | 2019-08-31 10-32



    这听起来像我之前在Gentoo上使用Hardened GCC时遇到的问题。



    这是bug跟踪器:

    1. <a href="http://d.puremagic.com/issues/show_bug.cgi?id=5278" rel="nofollow">
    2. http://d.puremagic.com/issues/show_bug.cgi?id=5278
    3. </A>



    您可以通过重新编译DMD来解决它

    这个补丁

    然后将“-cflag = -fno-pie”添加到/linux/bin64/dmd.conf文件中的DFLAGS(或者相对于新编译的dmd二进制文件的任何位置)。



    或者,找到一种方法来使用非强化GCC进行D编译。您可以构建自己的GCC副本,与Ubuntu的包装分开,然后说服DMD使用您的副本而不是Ubuntu。我为忘记细节而道歉,自从我与这个细节打过仗之后已经有一段时间了。


登录 后才能参与评论