Linux GDMD编译错误(CA XCOM服务器)

Linux GDMD编译错误(CA XCOM服务器),linux,server,gdc,Linux,Server,Gdc,我真的需要你的帮助。我正在努力编译Xcom服务器文件来安装我的Ubuntu Linux。Xcom服务器是一个消息服务器,它对于多人游戏和消息系统也很有帮助 当我键入make命令时,它返回如下错误: /bin/sh: 1: gdmd: not found Makefile:35: recipe for target 'protocol-daemon' failed make: ***[protocol-daemon] Error 127 我在linux Ubuntu中。Makefile文件如下:

我真的需要你的帮助。我正在努力编译Xcom服务器文件来安装我的Ubuntu Linux。Xcom服务器是一个消息服务器,它对于多人游戏和消息系统也很有帮助

当我键入
make
命令时,它返回如下错误:

/bin/sh: 1: gdmd: not found
Makefile:35: recipe for target 'protocol-daemon' failed
make: ***[protocol-daemon] Error 127
我在linux Ubuntu中。
Makefile
文件如下:

DFLAGS_DEBUG=-debug=2 -g -Isrc
DFLAGS_DEBUG1=-debug=1 -g -Isrc
DFLAGS=-O -inline -Isrc

PROTOCOL_SRC=src/misc_util.d src/socket_base.d src/xcomm_sockets.d src/msgserver_core.d src/char_outbuffer.d src/logging.d src/xml_util.d src/plugins.d src/xcomm_protocol/*.d src/stork/*.d src/stork/*/*.d
PROTOCOL_LIBS=-fPIC -q,-rdynamic -L-ldl
PROTOCOL_OUTPUT=./xcomm
PROTOCOL_FLAGS=-c xcomm.conf

PLUGIN_LIBS=-fPIC -q,-rdynamic,-shared

defaulttarget: protocol-daemon plugins-opt
all: protocol-daemon plugins-opt
distclean: clean

protocol:
    gdmd $(DFLAGS_DEBUG) -op -of$(PROTOCOL_OUTPUT) $(PROTOCOL_SRC) $(PROTOCOL_LIBS)
    find . -name "*.o" -print0 | xargs -0 rm -f

protocol-debug1:
    gdmd $(DFLAGS_DEBUG1) -op -of$(PROTOCOL_OUTPUT) $(PROTOCOL_SRC) $(PROTOCOL_LIBS)
    find . -name "*.o" -print0 | xargs -0 rm -f

protocol-test: protocol plugins
    $(PROTOCOL_OUTPUT) $(PROTOCOL_FLAGS)

protocol-opt:
    gdmd $(DFLAGS) -op -of$(PROTOCOL_OUTPUT) $(PROTOCOL_SRC) $(PROTOCOL_LIBS)
    find . -name "*.o" -print0 | xargs -0 rm -f

protocol-opt-test: protocol-opt plugins-opt
    $(PROTOCOL_OUTPUT) $(PROTOCOL_FLAGS)

protocol-daemon:
    gdmd $(DFLAGS) -version=daemon -op -of$(PROTOCOL_OUTPUT) $(PROTOCOL_SRC) $(PROTOCOL_LIBS)
    find . -name "*.o" -print0 | xargs -0 rm -f

daemon-debug:
    gdmd $(DFLAGS_DEBUG) -version=daemon -op -of$(PROTOCOL_OUTPUT) $(PROTOCOL_SRC) $(PROTOCOL_LIBS)
    find . -name "*.o" -print0 | xargs -0 rm -f

protocol-debug: protocol plugins
    find . -name "*.o" -print0 | xargs -0 rm -f
    gdb --args $(PROTOCOL_OUTPUT) $(PROTOCOL_FLAGS)

plugins:
    gdmd $(DFLAGS_DEBUG) -op -ofplugins/random.so src/plugins/random.d $(PLUGIN_LIBS)
    gdmd $(DFLAGS_DEBUG) -op -ofplugins/game_sets.so src/plugins/game_sets.d $(PLUGIN_LIBS)

plugins-opt:
    gdmd $(DFLAGS) -op -ofplugins/random.so src/plugins/random.d $(PLUGIN_LIBS)
    gdmd $(DFLAGS) -op -ofplugins/game_sets.so src/plugins/game_sets.d $(PLUGIN_LIBS)

clean:
    find . -name "*.o" -print0 | xargs -0 rm -f
    rm -f *.log
    rm -f plugins/*.so
    rm -f src/test_clients/old_n_crufty
    rm -f src/test_clients/scripted
    rm -f src/test_clients/spammer
    rm -f src/test_clients/spammer2
    rm -f $(PROTOCOL_OUTPUT)

backup: distclean
    @if [ ! -e dist ]; then mkdir dist; fi
    tar c . --exclude=CVS --exclude=.svn --exclude=dist | bzip2 -9 > dist/xcomm-backup_`date +"%Y-%m-%d_%H%M"`.tar.bz2

# Create a release tarball.
dist: distclean
    @if [ "$(DISTVER)" = "" ]; then echo DISTVER not set - please set it to 1.0 or similar.; echo; exit 1; fi
    @if [ ! -e dist ]; then mkdir dist; fi
    tar c . --exclude=CVS --exclude=.svn --exclude=dist --exclude=debug.conf | bzip2 -9 > dist/xcomm-$(DISTVER).tar.bz2

.PHONY: protocol protocol-test protocol-opt protocol-opt-test protocol-daemon protocol-debug plugins plugins-opt clean dist distclean backup all defaulttarget
.NOTPARALLEL:
我也可以把所有的文件寄给你,请帮助我。我花了4天时间,但还是没有成功。错误如下所示:


我相信DMD是Digital Mars的D语言编译器。尝试在可用软件包列表中查找并安装

更新

好的,我已经详细研究了这个问题

DMD确实是数字mars D编译器,但您需要的是GDMD,它是在GNU D之上运行的DMD的仿制品。我正在运行Ubuntu 15.04、64位、GCC 4.9.2

  • 我已经安装了GNUD:
    apt-get-install-gdc
  • 我已经从/usr/bin下载了GDMD,并将其安装为
    GDMD
    ,并使其可执行
  • 选中,因此终端中的
    gdmd
    会打印很多选项
  • 获取您的文件,解包并点击
    make
  • 获取有关未加引号的\0和\n的错误。编辑了几个地方和 把事情用双引号引起来
  • 缺少std/c/unix/unix.d时出错。电视上没有这样的东西 我的系统,但快速搜索告诉我它现在叫linux。所以在 很少有地方将std.c.unix.unix替换为std.c.linux.linux
  • 现在的错误是错误:模块日期位于无法读取的文件“std/date.d”中
  • 我放弃了,把火炬传递给你

    更新二

    实际上,处理相当多丢失的“std/date.d”是很容易替换的
    使用标准日期时间。但是后来我又错过了
    gc
    (垃圾收集器?),然后错过了
    md5
    (散列?

    谢谢你的时间和回答。实际上我以前做过,但我想我做错了。有一个步骤是这样的:将/dmd/linux/bin放在您的路径上,或者将linux可执行文件复制到/usr/local/bin,我不知道该怎么做。也许我正在做这一步的工作。现在我正在尝试在32位机器上安装,也许我得到了结果。你有什么版本的Ubuntu?看起来来自火星的D编译器(DMD)现在应该被称为
    DMD
    。你可以在终端上调用
    dmd
    吗?我使用的是从官方网站下载的Ubuntu 15。你到底想让我写什么?当我写dmd时,它返回:dmd 32 D编译器V 2.063.2版权所有1999-2013由Walter Bright编写的Digital Mars文档:。。。。用法:。。。。。等等这意味着dmd是可用的。你能看一下我要编译的服务器文件吗?也许有什么地方不对劲。www.speedyshare.com/6y4Tv/47d2b57d/xcom.zip我需要在任何linux机器上安装xcomm服务器,但不能。zip中有doc Folder,并编写了如何安装。提前谢谢。