dmd.2.029 编译过程

D编译彻底开源了,因而忍不住下载了最新的dmd编译源码(dmd.2.029),而后在Redhat AS3上进行编译,可是仍是遇到了一些小问题。下面将详细过程介绍一下: 1) 先解压 unzip dmd.2.029.zip 便生成目录 dmd, 该目录下有:src/, linux/, windows/samples/ 等目录 2) 编译dmd编译器 cd dmd/src/dmd/ make # 便会报错 backend/dwarf.c:54:26: ../mars/mars.h: No such file or directory # 因而建立目录同时要拷贝两个文件至新建目录: make mars cp mars.h mars/ cp complex_t.h mars/ # OK,编译器完毕,将如下几个可执行文件拷贝至 dmd/linux/bin/ 目录下: cp dmd idgen optabgen  impcnvgen ../../linux/bin/ 3) 编译运行时库 cd dmd/src/druntime/src chmod 755 build-dmd.sh ./build-dmd.sh # 因而报错 : No such file or directory # 为找到各类缘由,本人花了很久,终于搞明白是由于 build-dmd.sh 的原始格式为DOS格式, # 因此须要转换为 unix 格式 # 因而乎用工具将 build-dmd.sh 由DOS格式转换为UNIX格式, 再运行: ./build-dmd.sh # Ok 4) 编译 phobos 库,里面包含经常使用的函数库 cd dmd/src/phobos make -f linux.mak # 因而报错 make: *** No rule to make target `../druntime/lib/libdruntime.a', needed by `obj/posix/release/libphobos2.a'.  Stop. # 解决方法以下: cd dmd/src/druntime/lib/ ln -s release/libdruntime.a libdruntime.a # 而后 cd dmd/src/phobos make -f linux.mak # ok, 编译 phobos 成功,同时会自动将库 libphobos2.a 拷贝至 dmd/linux/lib/ 目录 5) 最后将 dmd/src/druntime/lib/release/ 目录下的全部库拷贝至 dmd/linux/lib/ 目录, 同时修改环境变量设置,将 xxx/dmd/linux/bin, xxx/dmd/linux/lib 放入我的环境变量中 不知即将发布的 dmd.2.030 会不会将这些小问题都给解决了:) 另外,本人在编译 dmd/samples/ 下的例子时,发现基本上是编译不过去,查看了源码,原来里面用的库基本都是 dmd.1.0 的库,但愿 Walter Bright 等人将此类问题都解决了,呵呵 注:以上仅是将DMD.2.029 在Redhat AS4的编译过程,若是想要在AS3上编译经过,还须要将附件的 linux.mak 替换 src/phobos/ 目录下的 linux.mak; 补充:若是你用的DMD.2.030在 AS3上编译,则须要将 linux.2.030.rar 替换 src/phobos/ 下的 linux.mak; 我的微博:http://weibo.com/zsxxsz
相关文章
相关标签/搜索