浏览 2459 次
锁定老帖子 主题:dmd.2.029 编译过程
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-19
最后修改:2009-05-31
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; 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |