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

星夢妙者
发布: 2025-09-03 12:16:01
原创
262人浏览过
答案:确认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语言的开发效率。

代码小浣熊
代码小浣熊

代码小浣熊是基于商汤大语言模型的软件智能研发助手,覆盖软件需求分析、架构设计、代码编写、软件测试等环节

代码小浣熊 51
查看详情 代码小浣熊
  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 <package>
    登录后复制
    来添加依赖。

  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`文件和基本的

以上就是SublimeText运行D语言代码失败怎么办?教你设置D编译器的步骤的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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