windows的d
原地址
在其它系统,在version(Posix)
下,一般都有c编译器
,而windows
下不一样.主要目的是确保可用c编译器
.
假定有以下2源文件cfoo.c及dfoo.d
:
#include <stdio.h>
void say_hello(void)
{
puts("Hello!");
}
及:
extern(C) void say_hello();
void main()
{
say_hello();
}
我们让其一起工作.
d窗口包
中提供了链接器,工具,系统库
.因而窗口
版本是d
不需要外部依赖的,也没安c
编译器.现在都是开箱即用
.其他平台c
编译器为gcc与clang
,dmd
用ld,lld,ld.gold,等其他ld兼容
工具来链接.窗口中,你可以用dmc或cl(微软)
.
(Optlink)
与dmd
一同分发,一般(即使是-m32
)也用optlink.exe
,要链接c目标/静态库
,要用omf
格式.dmc
生成omf
格式,可在这里下载.解压并添加至路径
.
echo 欢迎
@set PATH=C:\D\dmd2\windows\bin;C:\D\dm\bin;%PATH%
保存为一个快捷方式.然后
C:\System\Win32\cmd.exe /k C:\d\dmenv.bat
双击,就可以让你dmd,dmc
都可用了.查看相应文本.
现在:
dmc -c cfoo.c
dmd dfoo.d cfoo.obj
dfoo
用cl
.用VS2019
.就是太大了.安装dmd
,见安装dmd.安装包可以检测vs
.或者安装Visuald
插件.然后加上相应配置.有命令行的环境设置.可先调用这些批处理.再执行命令.
然后就可以:
cl /c cfoo.c
dmd -m64 dfoo.d cfoo.obj
dfoo
32位的话,用-m32mscoff
.重用已有工具开发现在语言,已是必然.如kotlin利用jre
,或rust利用llvm
.当d作者
开始d
时,还没有这种趋势,不过其已有c++
后端的工具链.所以,重用
是必然的.但有4个
副作用.
1,dmc仅窗口.2,链接格式为omf与coff不匹配.3,dmc不支持64位
,不过现在dmd
后端已boost
开源.
dmd
,0.0
,2001年,0.063
版本支持林操
,为了避免法律问题,d
作者修改后端来支持elf
格式,并提交给gcc
.对马操
也是如此,他支持了mach-o
格式.
为了对接窗口
中c
,以前用coffimplib
来转换coff->emf
格式或创建dll绑定
.然后d作者
支持了64位
,即使微软
有些未文档化
,同时也支持了32位的coff
格式.
因而窗口上
必须依赖c
编译器cl
,当然未来可能也可以用mingw-w64
.就不必依赖微软工具
了.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现