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

时间:2016-03-13 13:30:06

标签: 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文件就是这样的:

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天但仍然没有被拯救。错误如下所示:

enter image description here

1 个答案:

答案 0 :(得分:0)

我相信DMD是Digital Mars的D语言编译器。尝试在可用软件包列表中找到它并安装http://www.digitalmars.com/d/1.0/dmd-linux.html

更新

好吧,我已经考虑了一些问题了。

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

  1. 我已经安装了GNU D:gdmd
  2. 我已经从https://github.com/D-Programming-GDC/GDMD下载了GDMD,并将其作为gdmd安装在/ usr / bin中,并使其可执行
  3. 已选中,因此终端中的make会打印许多选项
  4. 获取文件,解压缩并点击gc
  5. 有关未加引号\ 0和\ n的错误。编辑了几个地方 把东西放在双引号中
  6. 关于缺少std / c / unix / unix.d的错误。没有这样的事情 我的系统,但快速搜索告诉我它现在称为Linux。所以 很少有地方将std.c.unix.unix替换为std.c.linux.linux
  7. NOw错误是错误:模块日期在文件' std / date.d'无法阅读
  8. 我放弃并向你传递火炬

    更新II

    实际上处理了相当多的遗失&#st; / date.d'很容易 - 取而代之 与std.datetime。但后来我丢失了md5(垃圾收集器?),然后丢失了{{1}}(哈希?)