文档章节

dmd.2.029 编译过程

郑树新
 郑树新
发布于 2014/09/03 12:11
字数 574
阅读 12
收藏 0
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

© 著作权归作者所有

郑树新

郑树新

粉丝 105
博文 87
码字总数 161171
作品 2
昌平
程序员
私信 提问
iOS开发你不知道的事-编译&链接

关注公众号“iOSSir”!看你想看!得你想得! 对于平常的应用程序开发,我们很少需要关注和过程。我们平常开发就是集成的的开发环境,这样的IDE一般都将和的过程一步完成,通常将这种和合并在...

iOS开发_小迷糊
05/13
0
0
libpinyin交叉编译移植ios平台

【业务需求】 一、功能需求 本人开发多语言输入法汉语联想输入法个人能力有限,要用第三方汉语联想输入法框架,需要https://github.com/libpinyin/libpinyin 移植到ios平台,通过cmake编译i...

mamatimin
2017/10/25
13
0
libpinyin输入法框架交叉编译移植ios平台

【业务需求】 一、功能需求 本人开发多语言输入法汉语联想输入法个人能力有限,要用第三方汉语联想输入法框架,需要https://github.com/libpinyin/libpinyin 移植到ios平台,通过cmake编译i...

mamatimin
2017/10/25
21
0
Hi3519V101移植SDL+FreeType+SDL_ttf

目录 目录 前言 源码下载 SDLFreeTypeSDL_ttf库编译过程 测试 总结 番外 前言 刚开始接触海思的时候要实现的功能就是OSD显示,虽然功能简单,但是要花了很长的时间,主要是对海思平台不够了解...

simonforfuture
2017/11/25
0
0
Oracle 存储过程 定义 和 优点 与 函数 区别

定义: 存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是...

cnsytem
2013/07/10
229
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
10
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部