DJGPP介绍
DJGPP是GCC编译器在DOS操作系统上的一个移植版本,可以用来在DOS操作系统下编译生成32位保护模式的程序。
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中运行时,它支持长文件名.
DJGPP可在官方网址
RHIDE介绍
RHIDE(Robert H.hne ’s IDE)就是Linux Console下的C/C++集成开发环境,界面与Turbo C++ 3.0几乎一模一样。
大家在Dos环境下使用过的Borland公司出品的Borland C++ 3.0,也一直希望找到一个在Linux环境下与之相似的产品。rhide就正是这样一个集成环境。许多Linux 下的IDE都是运行在XWindow上的,然而图形环境并不能给所有人带来方便。我个人认为一个好的开发环境就是:完整的库+源码+运行于控制台的IDE。运行rhide完全不需XWindow,而且它的界面一点也不shabby,与Borland C++ 3.1完全一致,让你找回当年开始学习用C,C++编程时的感受。rhide集成了gcc编译器以及gdb调试工具,其编辑环境可以根据语法对代码使用不同颜色区分。
RHIDE 最初是由Rbort H?hne发起的IDE项目,故而以此命名.它最初是为DJGPP编写的IDE,后来应要求移植到了DOS(Win32下也可运行DOS程序) 和 GNU/Linux 下.用于RHDIE使用了Borland 的 Turbo Vision库,所以它的界面看起来它完全可以跟DOS时代的Turbo C++3.0和Borland C++一致.
至2010年12月,RHIDE的版本为1.5.它依赖于SetEdit (另一个用TurboVision编写的文本编辑器) 和 Turbo Vision,以及GDB,将GDB 5.3 编译为内置调试器,可以在X下正常编译和调试运行.
开始安装
1、安装环境
主板:GX1-C19工控主板,AMD GX1 233MHz CPU,64M内存,8GB IBM 3.5英寸硬盘,支持USB
软件:安装前,硬盘中已安装完整的DOS 6.22,DOS下的USB驱动
我的config.sys文件内容如下:
DEVICE=C:\DOS\SETVER.EXE
DEVICE=C:\DOS\HIMEM.SYS
DOS=HIGH
FILES=30
LASTDRIVE=Z
DEVICE=C:\USB\ASPIOHCI.SYS
DEVICE=C:\USB\DI1000DD.SYS
我的autoexec.bat文件内容如下:
@ECHO OFF
PROMPT=$P$G
set PATH=C:\DOS
set TEMP=C:\DOS
doskey
USB驱动程序:如果您需要,请与我联系:[hengch@263.net](mailto:hengch@263.net)
2、下载所需的DJGPP安装包
* 打开网页:[http://www.delorie.com/djgpp/zip-picker.html](http://www.delorie.com/djgpp/zip-picker.html)(2017年3月14日注:链接可用)
* 做如下选择,其中下划线部分为我的选择,其他为提示。
**FTP Site
** Select a suitable FTP site:
Pick one for me
Basic Functionality
Pick one of the following:
Build and run programs with DJGP
**Which operating system will you be using?**
MS-DOS
**Do you want to be able to read the on-line documentation?**
Yes
**Which programming languages will you be using?**
C
C++
Assembler
**Which IDE(s) would you like?
** RHIDE, similar to Borland’s IDE, including a built-in editor and debugger.
**Would you like gdb, the text-mode GNU debugger? You don't need it if you get RHIDE.
** No
Extra Stuff
** Please check off each extra thing that you want.**
选择完毕后点击“Tell me which files I need”按钮,则给出如下内容:
unzip32.exe to unzip the zip files 95 kb
v2/copying.dj DJGPP Copyright info 3 kb
v2/djdev203.zip DJGPP Basic Development Kit 1.5 mb
v2/faq230b.zip Frequently Asked Questions 664 kb
v2/readme.1st Installation instructions 22 kb
v2apps/rhid15ab.zip RHIDE 6.0 mb
v2gnu/bnu217b.zip Basic assembler, linker 3.9 mb
v2gnu/gcc423b.zip Basic GCC compiler 4.3 mb
v2gnu/gpp423b.zip C++ compiler 4.5 mb
v2gnu/mak3791b.zip Make (processes makefiles) 267 kb
v2gnu/txi411b.zip Info file viewer 888 kb
Total bytes to download: 23,102,842
大致需要下载23MB的安装包
3、安装
下载内容通过U盘放到硬盘中。
-
在硬盘中建立目录:c:\djgpp
c:>md djgpp
-
拷贝安装包到c:\djgpp下
c:\copy g:. c:\djgpp (我的USB盘为g)
-
解压缩所有安装包
c:>cd\djgpp
c:\djgpp>unzip32 *.zip
这个过程比较长,请耐心等待。
-
修改配置
c:\djgpp>cd\
c:>edit autoexec.bat
增加一行:set DJGPP=C:\DJGPP\DJGPP.ENV
把原来的:set PATH=c:\DOS 改成:set PATH=c:\DOS;c:\djgpp\bin
存盘退出。
-
重新启动
-
测试DJGPP的安装情况
重新启动后
c:>go32-v2
显示错误提示:Load error: no DPMI - Get csdpmi*b.zip
这是因为go32-v2.exe这个程序是32位保护模式下的程序,而我们没有安装DPMI服务,所以不能运行。
-
下载v2misc/csdpmi5b.zip
下载地址:http://www.delorie.com/pub/djgpp/current/v2misc/csdpmi5b.zip
-
安装CWSDPMI
将下载的cwdpmi5b.zip拷贝到硬盘的c:\djgpp下:
c:>copy g:cwdpmi5b.zip c:\djgpp
解压缩
c:>cd djgpp
c:\djgpp>unzip32 cwdpmi.zip
-
再次测试DJGPP
c:\djgpp>cd\
c:>go32-v2
我们得到提示:
DPMI memory available: 62401 kb
DPMI swap space available: 129919 kb
说明DJGPP安装成功。
4、其他
安装过程中,实际上我们已经安装了一个开发环境:rhide
可以这样测试rhide已经安装成功:
c:\>rhide
你可以看到一个类似turbo C的界面,这就是RHIDE,rhide和djgpp配合十分默契。
至此,你已经可以开发C/C++的32位保护模式下的程序了。
设置环境变量
上述文件皆下载完后, 用任何编辑软件修改 autoexec.bat 文件, 添加一下内容:
set PATH=C:\DJGPP\BIN;%PATH%
set DJGPP=c:/djgpp/djgpp.env
重新启动计算机并至 DOS mode 即可执行 C/C++ compiler.—
如何边译程序
-
请用任何编辑软件写 C/C++ 程序, 如用 DOS 下的 edit.
-
将编辑好的程序存档, 如果您是写 C 程序, 则存 xxx.c; 若写 C++ 程序, 则存 xxx.cc
-
编译 C 程序, 执行 ; 编译 C++ 程序, 执行
gcc xxxx.c -o xxxx.exegxx xxx.cc -o xxx.exe
各举 C 和 c++ 简单例子并编译:
编译C语言程序
/* hello.c */
#include <stdio.h>
int main()
{
printf("Hello, world.\n");
}
编译:
gcc hello.c -o hello.exe
编译C++程序
// hello.cc
#include <iostream.h>
int main()
{
cout <<"Hello, world." << endl;
}
编译:
gxx hello.cc -o hello.exe