0

0

SublimeText运行D语言代码失败怎么办?教你设置D编译器的步骤

星夢妙者

星夢妙者

发布时间:2025-09-03 12:16:01

|

269人浏览过

|

来源于php中文网

原创

答案:确认D编译器安装后需在命令行输入dmd --version验证,若失败则检查PATH路径设置或重启终端;接着在Sublime Text中创建D语言构建系统并配置DCD与Dfmt插件实现补全和格式化,同时通过dub构建系统集成项目管理,确保working_dir为$project_path以正确运行dub命令。

sublimetext运行d语言代码失败怎么办?教你设置d编译器的步骤

Sublime Text运行D语言代码失败,多半是因为它找不到你系统里安装的D语言编译器,或者构建系统没配置好。要解决这个问题,你需要确保D编译器(比如DMD)已经正确安装并加入了系统路径,然后为Sublime Text设置一个合适的构建系统来调用这个编译器。

解决方案

首先,我们需要确保D语言的编译器已经安装并配置妥当。我个人通常推荐DMD(D Compiler),因为它算是官方实现,兼容性最好,安装起来也相对省心。你可以去D语言的官方网站下载对应你操作系统的安装包。安装过程中,务必勾选“添加到系统PATH”的选项,这样命令行才能识别到DMD。

安装完成后,打开你的终端(macOS/Linux)或命令提示符(Windows),输入

dmd --version
。如果能看到版本信息,说明编译器安装成功,并且PATH配置也基本没问题了。这步挺关键的,如果这里就报错,那后面Sublime Text肯定也跑不起来。我有时候会因为环境变量没刷新,折腾半天,所以如果命令行里看不到,记得重启一下终端或者电脑试试。

接下来,我们需要告诉Sublime Text如何使用这个编译器。

  1. 创建D语言构建系统: 打开Sublime Text,点击菜单栏的

    Tools
    ->
    Build System
    ->
    New Build System...
    。 这会打开一个新的文件,里面通常是一些JSON格式的默认内容。把这些内容替换成下面这段:

    {
        "cmd": ["dmd", "$file"],
        "file_regex": "^(.*?):([0-9]+):([0-9]+): (.*)$",
        "selector": "source.d",
        "shell": true,
        "encoding": "utf-8"
    }

    这里面,

    "cmd": ["dmd", "$file"]
    就是告诉Sublime Text,它需要执行
    dmd
    这个命令,并把当前打开的文件(
    $file
    )作为参数传给它。
    "selector": "source.d"
    确保这个构建系统只在D语言文件(通常以
    .d
    结尾)中可用。
    "shell": true
    在某些系统上,尤其是Windows,可以帮助Sublime Text正确找到并执行
    dmd
    命令,因为它会通过系统的shell来查找可执行文件。我第一次弄这个的时候,没注意
    shell: true
    ,结果在Windows上各种奇怪的报错,后来才发现是路径问题,加上这个就顺畅多了。

  2. 保存构建系统: 保存这个文件,Sublime Text会默认把它放到用户配置目录下的

    Packages/User
    文件夹里。你可以把它命名为
    D.sublime-build
    或者
    DMD.sublime-build
    ,只要你记得住就行。

  3. 选择D语言构建系统: 保存后,回到你的D语言源代码文件。再次点击

    Tools
    ->
    Build System
    ,你现在应该能在列表中看到你刚刚创建的
    D
    dmd
    构建系统了。选中它。

  4. 运行代码: 现在,你可以尝试运行你的D语言代码了。打开一个简单的D语言文件,比如:

    import std.stdio;
    
    void main()
    {
        writeln("Hello from D in Sublime Text!");
    }

    然后按下

    Ctrl+B
    (Windows/Linux)或
    Cmd+B
    (macOS)。如果一切顺利,Sublime Text底部的输出面板会显示你的程序输出,比如“Hello from D in Sublime Text!”。看到输出结果,那种成就感还是挺不错的。

D语言编译器安装后,如何确认其配置正确并解决常见路径问题?

D语言编译器安装后,最直接的确认方式就是打开命令行工具(终端或命令提示符),然后输入

dmd --version
(如果你安装的是DMD)。如果屏幕上能显示出DMD的版本信息,比如
DMD64 D Compiler v2.108.0
之类的,那就说明编译器本身是安装成功的,并且其可执行文件所在的路径也已经正确地加入到了系统的环境变量PATH中。

如果这一步失败了,通常会有以下几种情况和对应的解决方法:

  1. 安装时未勾选“添加到PATH”: 很多安装程序都会有这个选项。如果当时忘记勾选,或者安装的是zip包需要手动解压,那么就需要手动将DMD的

    bin
    目录添加到系统的PATH环境变量中。

    • Windows: 右键“此电脑” -> “属性” -> “高级系统设置” -> “环境变量”。在“系统变量”下找到
      Path
      ,编辑,然后添加DMD
      bin
      目录的完整路径(例如
      C:\D\dmd2\windows\bin
      )。
    • macOS/Linux: 编辑你的shell配置文件,比如
      ~/.bashrc
      ~/.zshrc
      ~/.profile
      ,添加一行
      export PATH="/path/to/dmd/bin:$PATH"
      ,然后
      source
      这个文件或者重启终端。
  2. 环境变量未刷新: 即使你添加了路径,当前打开的命令行窗口可能还没有加载最新的环境变量。关闭所有命令行窗口,然后重新打开一个,再试一次

    dmd --version
    。同样,Sublime Text也可能需要重启才能加载到最新的系统环境变量。我见过不少新手,包括我自己刚开始时,DMD明明装了,命令行里也能跑,但Sublime Text就是不行。十有八九是环境变量的问题,或者是Sublime Text启动时没加载到最新的环境配置。

  3. 路径拼写错误或指向错误: 检查你添加的路径是否完全正确,没有多余的空格,并且确实指向了包含

    dmd.exe
    (或
    dmd
    )的那个
    bin
    目录。

  4. 多个D编译器版本冲突: 极少数情况下,系统上可能安装了多个D编译器,导致PATH中引用的不是你期望的版本。你可以检查PATH变量中DMD相关路径的顺序,确保正确的版本优先。

解决这些路径问题后,Sublime Text的构建系统才能顺利找到并调用DMD编译器,从而成功运行D语言代码。

如何优化Sublime Text的D语言开发体验,实现代码补全与格式化?

仅仅能运行代码还不够,一个好的IDE体验离不开代码补全、语法高亮和自动格式化。Sublime Text通过Package Control和一系列插件,可以大大提升D语言的开发效率。

图星人
图星人

好用的AI生图工具,百万免费商用图库

下载
  1. 安装Package Control: 如果你还没安装Package Control,这是Sublime Text插件生态的基石。打开Sublime Text,按下`Ctrl+`` (反引号键,通常在Esc键下方) 打开控制台,然后去Package Control官网复制安装代码粘贴进去回车即可。

  2. 安装D语言相关插件: 安装Package Control后,按下

    Ctrl+Shift+P
    (Windows/Linux)或
    Cmd+Shift+P
    (macOS),输入
    install package
    ,选择
    Package Control: Install Package

    • D Language: 这个插件提供了D语言的语法高亮、基本代码片段和一些构建工具的集成。搜索

      D Language
      并安装。这是最基础的,能让你的D代码看起来更舒服。

    • DCD (D Completion Daemon): 这是实现D语言代码智能补全的关键。DCD是一个后台守护进程,它会解析你的D代码和标准库,提供上下文相关的补全建议。

      • 安装DCD本身: DCD通常是通过D语言的包管理器

        dub
        来安装的。打开命令行,运行
        dub fetch dcd
        然后
        dub build dcd
        。或者直接
        dub install dcd
        。这会在你的
        ~/.dub/packages
        目录下编译出
        dcd-server
        dcd-client
        可执行文件。

      • 配置Sublime Text的DCD插件: 安装

        DCD
        Sublime Text插件后,你可能需要告诉它
        dcd-server
        dcd-client
        在哪里。点击
        Preferences
        ->
        Package Settings
        ->
        DCD
        ->
        Settings - User
        。如果你的DCD可执行文件不在系统PATH中,你需要在这里指定它们的完整路径,例如:

        {
            "dcd_client_path": "/path/to/dcd-client",
            "dcd_server_path": "/path/to/dcd-server",
            "dcd_auto_start_server": true
        }

        具体路径需要根据你安装

        dub
        DCD
        的位置来定。

    • Dfmt (D Formatter): 用于D语言代码的自动格式化。它能帮助你保持代码风格的一致性。

      • 安装Dfmt本身: 同样通过

        dub
        安装:
        dub install dfmt

      • 集成到Sublime Text:

        Dfmt
        插件通常会提供一个命令或快捷键来格式化当前文件。你也可以考虑创建一个自定义的构建系统变体,或者绑定一个快捷键来调用
        Dfmt
        。例如,你可以在
        Key Bindings - User
        中添加:

        { "keys": ["ctrl+alt+f"], "command": "dfmt" }

        或者在你的

        D.sublime-build
        中添加一个格式化的选项:

        {
            "cmd": ["dfmt", "$file"],
            "name": "D: Format File",
            "selector": "source.d",
            "shell": true
            // ... 其他设置
        }

一开始我只是想让代码能跑起来,后来发现没有补全和格式化,写起来效率差很多。装了DCD和Dfmt之后,感觉整个世界都清爽了,尤其是在写一些复杂结构的时候,补全功能简直是救命稻草。

D语言的
dub
包管理器在Sublime Text中如何高效集成与使用?

D语言的生态里,

dub
绝对是核心。它不仅是D语言官方的包管理器,也是一个强大的构建工具,负责处理项目依赖、编译、运行测试,甚至发布你的D语言库或应用。离开了它,管理依赖和构建项目会非常痛苦。将
dub
集成到Sublime Text中,能让你的D语言项目开发流程更加顺畅。

  1. 理解

    dub
    的基本用法:
    dub
    通过项目根目录下的
    dub.json
    dub.sdl
    文件来定义项目的元数据、依赖和构建配置。例如,一个简单的
    dub.json
    可能看起来像这样:

    {
        "name": "my-d-app",
        "description": "A simple D application.",
        "dependencies": {
            "vibe-d": "~>0.9.7"
        },
        "mainSourceFile": "source/app.d"
    }

    在命令行中,你可以使用

    dub build
    来编译项目,
    dub run
    来编译并运行项目,
    dub test
    来运行测试,以及
    dub add 
    来添加依赖。

  2. dub
    创建Sublime Text构建系统: 为了在Sublime Text中方便地使用
    dub
    ,我们可以创建一个专门的构建系统。 再次通过
    Tools
    ->
    Build System
    ->
    New Build System...
    创建一个新文件,并添加以下内容:

    {
        "cmd": ["dub", "run"], // 默认运行项目
        "file_regex": "^(.*?):([0-9]+):([0-9]+): (.*)$",
        "selector": "source.d",
        "shell": true,
        "working_dir": "$project_path", // 关键:确保dub在项目根目录运行
        "variants": [
            {
                "name": "Build",
                "cmd": ["dub", "build"]
            },
            {
                "name": "Test",
                "cmd": ["dub", "test"]
            },
            {
                "name": "Clean",
                "cmd": ["dub", "clean"]
            }
        ]
    }

    保存为

    Dub.sublime-build
    。 这个构建系统默认会执行
    dub run
    。最关键的是
    "working_dir": "$project_path"
    这一行。
    dub
    需要知道它当前操作的是哪个项目,所以必须在项目的根目录执行。
    $project_path
    这个变量会让Sublime Text自动切换到当前打开文件的项目根目录。我刚开始没注意,结果
    dub
    老是找不到项目文件,后来才发现是工作目录不对。
    "variants"
    部分则定义了几个可选的构建命令,你可以在
    Tools
    ->
    Build With...
    中选择“Dub - Build”、“Dub - Test”等来执行不同的
    dub
    命令。

  3. 在Sublime Text中初始化新

    dub
    项目: 虽然没有直接的图形界面,但你可以在Sublime Text的控制台(
    Ctrl+``)中直接输入
    dub init
    来快速初始化一个新项目。它会引导你填写项目名称、类型等信息,然后自动生成
    dub.json`文件和基本的

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

417

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

535

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

311

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

76

2025.09.10

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

688

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1126

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

799

2023.08.01

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

454

2023.08.02

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

25

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.7万人学习

Git 教程
Git 教程

共21课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号