「D」の版間の差分
ナビゲーションに移動
検索に移動
(→インストール: 情報を更新) |
(同期) |
||
29行目: | 29行目: | ||
$ dmd -run hello.d |
$ dmd -run hello.d |
||
− | == |
+ | == 考慮事項 == |
− | コンパイラに関しては複数の選択肢が存在します。標準のコンパイラ (リファレンス実装) は dmd ですが、{{Pkg|gdc}}{{Broken package link|置換パッケージ: {{Pkg|gcc-d}}}} (GNU D Compiler) や {{Pkg|ldc}} (LLVM D Compiler) も人気があります。どちらも [community] に入っています。 |
||
+ | 選択するコンパイラに関しては選択肢があります。リファレンス実装は {{Pkg|dmd}} ですが、{{Pkg|gcc-d}} ([[GCC]] の D フロントエンド) と {{Pkg|ldc}} ([[LLVM]] D コンパイラ) も利用出来ます。 |
||
− | 主な違いは dmd のバックエンドは FOSS ではない (Symantec からライセンスを受けている) のに対して、他のコンパイラは完全な FOSS です。3つのコンパイラはどれも同一のフロントエンドコードを共有しているため、言語機能のサポートについては (フロントエンドのバージョンが同じなら) ほとんど同等です。 |
||
+ | 2017 年 4 月現在 [https://github.com/dlang/dmd/pull/6680 dmd のバックエンドは FOSS になりました] (Boost ライセンス) すべてのコンパイラーは同じフロントエンドコードを共有するため、言語機能のサポートがほぼ同じになります (フロントエンドバージョンが同じであると仮定します。) |
||
− | == hardening-wrapper == |
||
+ | == 便利なライブラリとバインディング == |
||
− | Arch Linux の {{Pkg|dmd}} と {{Pkg|libphobos}} パッケージは PIC のサポートを有効にせずビルドされています。{{Pkg|hardening-wrapper}}{{Broken package link|パッケージが存在しません}} を使用して実行ファイルをビルドすると強制的に PIC のサポートが有効になり以下のようにエラーが表示されます: |
||
− | {{hc|$ dmd app.d| |
||
− | /usr/bin/ld: app.o: relocation R_X86_64_32 against `__dmd_personality_v0' can not be used when making a shared object; recompile with -fPIC |
||
− | app.o: error adding symbols: Bad value |
||
− | collect2: error: ld returned 1 exit status |
||
− | --- errorlevel 1}} |
||
− | |||
− | 以下のような解決方法があります: |
||
− | |||
− | * {{Pkg|hardening-wrapper}}{{Broken package link|パッケージが存在しません}} をアンインストールする。 |
||
− | * PIC のサポートが有効になっている {{Pkg|gdc}}{{Broken package link|置換パッケージ: {{Pkg|gcc-d}}}} コンパイラを使用する: {{bc|gdc app.d}} もしくは {{Pkg|dub}} を使用する場合: {{bc|1=dub --compiler=gdc}} |
||
− | * [[abs]] を使って {{ic|-fPIC}} フラグを有効にして {{Pkg|dmd}} と {{Pkg|libphobos}} を再コンパイルする。 |
||
− | * clang のリンカを使う: {{bc|1=CC=/usr/bin/clang dmd app.d}} もしくは dub を使用する場合: {{bc|1=CC=/usr/bin/clang dub}} |
||
− | |||
− | 詳しくは以下のページを参照: |
||
− | * https://issues.dlang.org/show_bug.cgi?id=15054 |
||
− | * {{Bug|34983}} |
||
− | * {{Bug|46260}} |
||
− | * http://wiki.dlang.org/Installing_LDC_on_Gentoo#Hardened_Gentoo |
||
− | |||
− | == 便利なライブラリとバインディング == |
||
* [https://code.google.com/p/ddt/ DDT] - D のプロジェクトとコード管理のための Eclipse プラグイン |
* [https://code.google.com/p/ddt/ DDT] - D のプロジェクトとコード管理のための Eclipse プラグイン |
||
* [http://mono-d.alexanderbothe.com/ Mono-D] - D でプログラミングするための [http://monodevelop.com/ MonoDevelop] アドイン |
* [http://mono-d.alexanderbothe.com/ Mono-D] - D でプログラミングするための [http://monodevelop.com/ MonoDevelop] アドイン |
||
69行目: | 48行目: | ||
* [http://dlang.org/ The D Programming Language] - D の公式ホームページ |
* [http://dlang.org/ The D Programming Language] - D の公式ホームページ |
||
* [http://planet.dsource.org/ Planet D] - D に関するブログまとめ |
* [http://planet.dsource.org/ Planet D] - D に関するブログまとめ |
||
+ | * [https://wiki.dlang.org/ D Wiki] |
2023年6月2日 (金) 18:44時点における版
Wikipedia:ja:D言語 より:
- D プログラミング言語 (D) は Digital Mars の Walter Bright によるオブジェクト指向・命令型・マルチパラダイムのシステムプログラミング言語です。C++ のリエンジニアリングが元で作られ、C++ の影響を強く受けていますが C++ の派生言語ではありません。D は C++ の機能を再設計すると共に Java, C#, Eiffel などのプログラミング言語で使われている発想から着想を得ています。
インストール
D でプログラムを組むには2つのものが必要になります: D コンパイラとライブラリです。すぐに始める最も簡単な方法は、dlang-dmd パッケージグループをインストールすることです。公式コンパイラ (dmd)、標準ライブラリ libphobos、および小規模な開発ツールのコレクションである dtools が提供されます。
インストールのテスト
シンプルな Hello World プログラムでインストールが正しく完了できているか確認できます:
import std.stdio; void main() { string yourName = "archer"; writefln("Hello %s!", yourName); }
ファイルに上記のコードを貼り付けて hello.d という名前を付けて、ファイルと同じディレクトリで次を実行:
$ dmd hello.d
そうしたら次のコマンドでプログラムを実行することができるはずです:
$ ./hello
また、ディレクトリにオブジェクトファイルを保存せずにコンパイル・実行をしたいときは:
$ dmd -run hello.d
考慮事項
選択するコンパイラに関しては選択肢があります。リファレンス実装は dmd ですが、gcc-d (GCC の D フロントエンド) と ldc (LLVM D コンパイラ) も利用出来ます。
2017 年 4 月現在 dmd のバックエンドは FOSS になりました (Boost ライセンス) すべてのコンパイラーは同じフロントエンドコードを共有するため、言語機能のサポートがほぼ同じになります (フロントエンドバージョンが同じであると仮定します。)
便利なライブラリとバインディング
- DDT - D のプロジェクトとコード管理のための Eclipse プラグイン
- Mono-D - D でプログラミングするための MonoDevelop アドイン
- QtD - D の Qt バインディング
- GtkD - D のオブジェクト指向 GTK+ ラッパー
- Derelict - マルチメディアライブラリのバインディング、ゲーム開発向け
- Deimos - 様々な C ライブラリのバインディングが大量に揃っているプロジェクト
参照
- GitHub の Phobos リポジトリ - 公式リポジトリ
- The D Programming Language - D の公式ホームページ
- Planet D - D に関するブログまとめ
- D Wiki