DJGPP :DJGPP

更新时间:2024-09-21 15:33

DJGPP(DJ's GNU Programming Platform)是一个由DJ Delorie于1989年开始的项目,为英特尔 80386及以上级别的IBM PC兼容机提供支持DOS操作系统的软件开发套件。DJGPP是GNU编译器集合(GCC)的一个移植版本,可以用来在DOS操作系统下编译生成32位保护模式的程序,主要是将GNU实用程序,如Bash、find、tar、ls、GAWK、sed和ld移植到DOS保护模式接口(DPMI)。支持的编程语言包括C、C++Objective-C/C++、Ada、Fortran和Pascal。DJGPP生成的编译器可以在32位保护模式下生成32位代码,并在32位保护模式下本机运行,同时切换回16位DOS调用以获得基本操作系统支持。与Open Watcom C/C++编译器不同,DJGPP并非从零开始的平面模型,因为它更喜欢使用NULL指针保护以获得更好的稳定性。目前,DJGPP基于COFF格式的变体。当使用合适的DPMI主机(如CWSDPMI r7或HDPMI32)时,它可以在纯DOS中访问高达4 GB的RAM。

软件介绍

DJGPP是GCC编译器在DOS操作系统上的一个移植版本,

DJGPP的发起人是DJ Delorie,它是开源的,任何人都可以改进它,为它的发展作贡献。大家就可以用它来编写新的dos软件来使DOS更加强大。

当程序由DJGPP编译,并使用DJGPP的开发工具时,表面看起来象普通的DOS程序。它依赖于MS-DOS和BIOS实现文件I/O和其它基本功能例如键盘输入,屏幕感应等。DJGPP适应的环境有:MS-DOS,Caldera's DR-DOS,FreeDOS,Windows 9x,NT,XP,OS/2,Linux DOSEmu.当DJGPP在Windows xp和Caldera's DR-DOS中运行时,它支持长文件名。

截至2020年8月,DJGPP 2的主要组件包括GNU编译器集合9.3.0(也可使用10.2.0)、Autoconf 2.5.9、Automake 1.9.4、Binutils 2.34、GNU Bash 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提供给程序员一个与ANSI C和C99标准、DOS API以及旧版类POSIX环境兼容的接口。编译后的二进制文件支持长文件名(LFN),并且默认情况下可以在大多数32位Windows系统下处理这些文件名,但它们无法使用Windows图形程序所需的Win16或win32 API。支持在纯DOS或Windows NT 4下使用LFN的terminate-and-stay-resident(TSR)程序也是可用的。

尽管DJGPP在32位保护模式下运行,但其存根和库大量依赖于许多16位DOS和BIOS调用。由于x86-64版本的Windows不支持16位程序,因此没有NTVDM,也无法运行DJGPP应用程序。在x86-64系统下,这些应用程序只能通过仿真(例如DOSBox)、x86虚拟化(例如VirtualBox)或类似方法(例如Linux的DOSEMU)来运行。这个问题的根源在于长模式下的x86-64处理器不支持IA-32处理器中用于运行16位代码的虚拟8086模式。新的支持VT-x的x86处理器可以支持分页的实模式和无限制的客户模式执行。

功能与服务

学习C和C++和编程。

在DOS或WINDOWS环境中学习使用LINUX/unix编程。

写 games3和图形程序。

为UNIX和MS-DOS/MS-WINDOWS建立通用开发环境

写可移植DOS/UNIX程序。

把UNIX程序移植到微软操作系统。

DJGPP还可以用于编译移植到MS-DOS中的C,C++之外其它语言,包括后端语言ADA,PASCAL和Fortran(可用于编写并行计算程序)。GNU Pascal(gpc) 和GNU Fortran (g77)都可包含于DJGPP软件包中。最新版GCC还包括前端语言如JAVA和CHILL。

参考资料

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}
友情链接: