9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

D言語環境構築 2022年版

Last updated at Posted at 2022-12-03

はじめに

2022年における人生最良の行動、すなわちD言語インストールの方法について解説します。

Linux・Mac・WSL2といったPOSIX系環境

インストールスクリプトにより、ホームディレクトリに手軽に処理系を導入できます。

なお、利用のためにはGnuPGが必要になるので、そちらはaptなどで事前に準備しておいてください。

Ubuntuでは以下のような感じで利用できます。

# curlでinstall.shをダウンロードし、即実行
$ curl https://dlang.org/install.sh | bash -s
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 37302  100 37302    0     0  41036      0 --:--:-- --:--:-- --:--:-- 40991
Downloading and unpacking http://downloads.dlang.org/releases/2.x/2.101.0/dmd.2.101.0.linux.tar.xz
######################################################################## 100.0%
Using dub 1.30.0 shipped with dmd-2.101.0

Run `source ~/dlang/dmd-2.101.0/activate` in your shell to use dmd-2.101.0.
This will setup PATH, LIBRARY_PATH, LD_LIBRARY_PATH, DMD, DC, and PS1.
Run `deactivate` later on to restore your environment.

# sourceコマンドでactivateを読み込んで該当バージョンを有効化
$ source ~/dlang/dmd-2.101.0/activate

# プロンプトに現在有効なD言語処理系が表示される。試しにdmdバージョン表示
(dmd-2.101.0) $ dmd --version
DMD64 D Compiler v2.101.0
Copyright (C) 1999-2022 by The D Language Foundation, All Rights Reserved written by Walter Bright

# 試しにHello,World実行
(dmd-2.101.0) $ rdmd --eval='writeln("Hello,D World!")'
Hello,D World!

# deactivateでD言語使用終了
(dmd-2.101.0) $ deactivate
$ 

後は、パッケージマネージャのdub等を使用してD言語でガンガンプログラミングするだけです。

D言語そのものの学習には、Dlang TourD Cookbookを見てみてください!

MacやWindowsでインストーラーを使う

MacやWindowsには公式でDMGが用意されていて、そちらを利用することも可能です。
詳しくは、D言語本家のダウンロードページを参考にしてください。

Windowsでの注意点

Windowsでは、libc相当のランタイムライブラリを利用するために、VC++の再配布可能パッケージやVisual Studioそのもののインストールが必要です。
D言語のためだけに何GBもあるVisual Studioをインストールするのは微妙だと思うので、インストール時にはVC++の再配布可能パッケージを利用する形でインストールしたほうがよいと思います。

具体的には、インストーラーで以下の画面になったら、下記画像の通りの選択肢を選んでください。

D言語セットアップ画面 Install VC2010 redistributables...を選択

すると再配布可能パッケージのインストールが始まるので、指示に従ってインストールします。

再配布可能パッケージのインストール

これで巨大なVisual StudioなしでD言語が利用できます。

インストールしたdmdを確認

Visual Studio Codeを使ったWindowsでの環境構築

さて、時代は令和に入ってすでに4年、もうすぐ令和5年です。
いまどき個別のインストーラーやスクリプトでインストールし続けるのもモダンなエンヂニヤ達の心には響かないものがあるでしょう。
というわけで、今年はVisual Studio CodeのD言語拡張機能だけで環境構築をやってみます!

下記のように素のVisual Studio Codeをまずは用意します。Windows Sandboxを使っているので、マジでdmdも何も入っていない状態からの素からやっていきます。

素のVSCode

まずは拡張機能のインストールです。Extensionsメニューでdlangで検索をすると一瞬で最上部に出てきます。即インストールします。

D言語拡張機能インストール

最初はこんな画面になるので、Setup D Compilerを押下します。レッツ人生最良の行為!
人生最良の行為初回

しかしなぜか最初はPreview index.mdが開いてしまいます。この時は初回起動なので、右下のFirst time setupを押します。
人生最良の行為なぜか横槍

元の画面に戻ります。ここで先ほどから右下に出ているReinstall serve-dを押しましょう。これをやらないと後続手順がうまくいきませんでした。
(私のような特別な訓練を受けた人間なら、冷静に普通のWindowsインストーラーを使ってパスを通すだけの話なのですが)

Reinstall serve-dを押す

それからSetup D Compilerを押します。

Setup D Compiler押し

すると、コマンドバーに選択肢が出ます。

人生最良の行為2回目の挑戦

とりあえずレコメンドなDMDを選択

インストーラー選択

Run installerでインストール開始します。

Run installer押し

夢にまで見たインストーラーが起動します!あとは先ほどの注意点に従ってインストールします。

VC2010 redistributableを選んでね

インストールが完了したら、環境変数の再読み込みの関係から一度VSCodeをしっかり再起動します。Reload Windowだけではダメです。
再起動すれば、Termnialでdmdが動くことを確認できます。

再起動後に確認

せっかくのVSCodeなのだからターミナルで動かしてばかりいても仕方ないです。コマンドでプロジェクトを作ってみます。
まずプロジェクト用フォルダを用意してVSCodeで開きます。

image.png

Yes, I Trustですね。

image.png

Ctrl + Shift + Pでコマンドメニューを開いて code-d: Create New Projectを選びます。
まずは基本のEmpty Console Applicationを選びましょう。

image.png

こんな感じでシンプル極まりないプロジェクトができます。

image.png

現状でコードサジェスチョンが効きます!当たり前のようですが一昔前からD言語使っているDゲンガーには感涙ものです……。

感動のコードサジェスチョン

トラブル情報

ここで、dubとか使ってHello,Worldを動かして今年の仕事一丁終わり! と行きたかったのですが……。

どうも今はWindows版のdmdで-m64でのビルド結果が怪しいようです……。

現状ではエラーが出て終わります。

image.png

rdmdで動かしてみるとこんな感じです……。-m64をつけると正常に実行されません。

image.png

dmd-2.101はまだ新しいから何かトラブルがあるのかも……。

続報こうご期待!

9
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?