GCC を利用した DJGPP 環境 | |
| 開発者 | DJ デロリー |
|---|---|
| 安定版リリース | 2.05 / 2015年11月3日[1] |
| リポジトリ |
|
| オペレーティング·システム | DOSおよび 32 ビットWindows |
| タイプ | コンパイラ |
| ライセンス | GNU GPL |
| Webサイト | 詳しくはこちら |
DJ の GNU プログラミング プラットフォーム( DJGPP ) [2]は、 DOSオペレーティング システムをサポートする、Intel 80386レベル以上、IBM PC 互換機用のソフトウェア開発スイートです。1989 年にプロジェクトを開始した DJ Delorie が主導しています。これは、GNU コンパイラ コレクション (GCC) と、主に Bash 、 find 、 tar 、 ls 、 G AWK 、 sed 、 ld などの GNU ユーティリティを DOS 保護モード インターフェイス (DPMI) に移植したものです。サポートされている言語には、 C 、 C ++、Objective - C / C ++、 Ada 、 Fortran 、 Pascal などがあります。当初はDJGCCと呼ばれていましたが、後に C++ サポートが追加された際に DJGCC から DJGPP に改名されましたが、"PP" は "Plus Plus" ではなく "Programming Platform" の略だと言われています。[3]
概要
コンパイラは 32 ビット コードを生成します。このコードは 32 ビット保護モードでネイティブに実行されますが、基本的な OS サポートのために 16 ビット DOS 呼び出しに切り替わります。ただし、Open Watcom C/C++ コンパイラとは異なり、安定性を高めるために NULL ポインタ保護を優先するため、ゼロベースのフラット モデルではありません。現在はCOFF形式のバリアントに基づいています。適切なDPMIホスト ( CWSDPMI r7 または HDPMI32 など) を使用すると、純粋な DOS で最大 4 GB の RAM にアクセスできます。
2020 年 8 月現在[アップデート]、DJGPP 2 の主なコンポーネントは次のとおりです。
- GNU コンパイラ コレクション9.3.0 (10.2.0 も利用可能)
- オートコンフ2.5.9
- オートメイク1.9.4
- バイナリユーティリティ2.34
- GNU バッシュ4.1.17
- GNU Bison 2.4.1、Flex 2.5.4
- GNU Emacs 24.5
- GNU MPC 1.1.0、MPFR 4.1.0
また、DJGPP を使用して、UNIX / Linux などのソフトウェアを DOS にクロスコンパイルすることもできます。DJGPP ライブラリとプログラムの両方をこの方法でコンパイルし、リンクしてから、DOS または DOS エミュレーターを搭載したマシンに展開できます。
互換性
DJGPP は、 ANSI CおよびC99標準、DOS API、および古いPOSIXのような環境と互換性のあるインターフェイスをプログラマに提供します。コンパイルされたバイナリは長いファイル名(LFN) を認識し、デフォルトでほとんどの 32 ビット Windows でそのような名前を処理できますが、 Windows 上のグラフィカル プログラムに必要なWin16または Win32 API は使用できません。[4]通常の DOSまたはWindows NT 4で LFN をサポートする終了して常駐する(TSR) プログラムが利用可能です。
DJGPP は 32 ビット保護モードで動作しますが、そのスタブとライブラリは多くの 16 ビット DOS および BIOS 呼び出しに大きく依存しています。Windowsのx86-64バージョンは16 ビット プログラムをサポートしていないため、[5] [6] NTVDMはなく、DJGPP アプリケーションは実行できません。x86-64 システムでは、これらのアプリケーションはエミュレーション (例: DOSBox)、x86 仮想化 (例: VirtualBox)、または類似のもの (例: Linux の DOSEMU) を通じてのみ機能します。この問題は、ロングモードのx86-64 プロセッサが、IA-32 プロセッサで 16 ビット コードを実行するために使用される仮想 8086 モードをサポートしていないために発生します。VT - xを備えた新しい x86 CPU は、ページングされたリアル モードと制限のないゲスト モード実行をサポートしています。
参照
- フリーDOS
- Cygwin - 多数の移植ライブラリとアプリケーションを備えた UNIX 互換レイヤー
- EMX - DOS (および OS/2) 用の POSIX 実装
- GNUWin32 の
- MinGW - 最小限のランタイムサポートを必要とするように設計された、Windows 用の GNU ツールチェーンのポート
- オープンWatcom C/C++コンパイラ
- アレグロ
- Linux 用 Windows サブシステム
参考文献
- ^ 「お知らせ: DJGPP V2.05 リリース」。ニュースグループ: comp.os.msdos.djgpp。2015 年 11 月 3 日。
- ^ Eli Zaretskii (1999年7月). 「DJGPPプロジェクト」 . 2009年7月20日閲覧。
- ^ 「djgppの歴史」。
- ^ Wall, Kurt; Von Hagen, William (2004). GCC 決定版ガイド. Apress. pp. 47–48. ISBN 9781590591093もう 1 つの人気のある(
ただし古くなった) GCC ベースの開発システムは、DJ[sic] Delorie の DOS システム用の無料の 32 ビット開発環境である DJGPP です。
- ^ 「ガイド: DJGPP とは?」 。 2015 年11 月 22 日閲覧。
DJGPP プログラムの対象ハードウェア プラットフォームは、DOS を実行している PC プラットフォーム、または DOS 互換のオペレーティング システムです。DJGPP プログラムは、Windows の「DOS プロンプト」ボックスで実行されます。
- ^ Microsoft (2007 年 10 月 11 日)。「64 ビット Windows の制限事項一覧」。2010 年 4 月 20 日時点のオリジナルよりアーカイブ。2010年4 月 20 日閲覧。16
ビット MS-DOS および Microsoft Windows 3.x ユーティリティは起動しません。このようなプログラムを起動しようとすると、「Program.exe は有効な Win32 アプリケーションではありません」というエラー メッセージが表示されます。
外部リンク
- 公式サイト
- DJ Delorieのウェブページ
