|
红色狂想
金牌会员
龙哥DOS
积分 4289
发帖 1501
注册 2003-2-23 来自 河南省
状态 离线
|
『楼 主』:
[求助] 我需要勇于献身的翻译帮助
各位E文高手们:
你们好!我对E文一窍不通,而我又太想用DJGPP编程了,可是它的安装又非常复杂,所以我想请大家给我翻译一下它的安装说明,以下是它的链接:
http://www2.zzu.edu.cn/ie/newdos/dispbbs.asp?boardID=6&ID=2604
你们不要说我笨,我太想用DJGPP编程了。在此我先谢谢大家了!
[em27] [em01] [em26]
|
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
C++ ☆☆☆ 中国DOS联盟成员 ☆☆☆ C++
C++ ★★★ 爱提问的红色狂想 ★★★ C++
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++ |
|
2003-7-11 00:00 |
|
|
红色狂想
金牌会员
龙哥DOS
积分 4289
发帖 1501
注册 2003-2-23 来自 河南省
状态 离线
|
『第
2 楼』:
我急顶一下!
|
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
C++ ☆☆☆ 中国DOS联盟成员 ☆☆☆ C++
C++ ★★★ 爱提问的红色狂想 ★★★ C++
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++ |
|
2003-7-12 00:00 |
|
|
红色狂想
金牌会员
龙哥DOS
积分 4289
发帖 1501
注册 2003-2-23 来自 河南省
状态 离线
|
『第
3 楼』:
我知道论坛中有几位E文高手,麻烦你们看我一眼吧!
|
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
C++ ☆☆☆ 中国DOS联盟成员 ☆☆☆ C++
C++ ★★★ 爱提问的红色狂想 ★★★ C++
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++ |
|
2003-7-14 00:00 |
|
|
lemonhall
高级用户
OS/2女孩
积分 639
发帖 183
注册 2003-6-14
状态 离线
|
『第
4 楼』:
指南:安装DJGPP
好的,你需要一个健全目录结构的ZIP压缩文件。 很多文件动辙上兆,也不知道从哪里下手。
第一步是决定你想用DJGPP干什么,这个步骤可以使你有选择地解压
对于每个ZIP文件,用UNZIP或PKUNZIP带-D参数解压。 如果忘记使用-D参数
那么每个文件都会直接解压在一个目录里,当然那不是你所期望的
一旦你选择了要解压的文件, 你应该将他们都解压到一个相同的目录里
因为教学的原因, 我们假设你选择c:\djgpp作为解压目录
在正确解压后,可以看到以下的目录结构
bin
可执行文件
include
INCLUDE文件
lib
库文件
manifest
描述每个ZIP文件内容的清单目录
zoneinfo
时区定义(可能你并不需要,可以删除)
还可能有以下目录
src
DJGPP的源文件
gnu
GNU的源文件
contrib
分发的工具
你已经将所有的文件解压出来了, 但这并不是结束,还有两件事在你使用DJGPP前需要准备:
在DJGPP目录里,有一个BIN目录包含着所有的程序。 你必须修改你的环境变量,使这个BIN目录路径进入PATH
变量。
下面是一个AUTOEXEC。BAT中加入BIN路径的例子
set PATH=C:\DJGPP\BIN;%PATH%
在DJGPP目录里有一个文件DJGPP.ENV,不要修改它除非安装包指定那样做。你必须加一个新的环境变量
去告知系统指向这个文件。
需要在意的是,这里你可以随意使用大小写, 并可以随意使用/或\符号。(多数DJGPP程序对两中表达
都支持,不过建议使用和例子中一样,使用\号)
--------------------------------------------------------------------------------
下一个阶段列出了最流行(或着说常常被遗忘的)DJGPP安装部分。
你自己的描述版本可能包含许多其他ZIP文件包(当我在写这个文件时, 已经有了不得06个分开的ZIP包了)
大多数有自述文件,所以大可打开看看,它们能给你带来什么:))
基本功能部分
每个程序员都应该安装这些基本包, 无论他们是否需要。 为什么? 因为虽然它们看上去并不是那么迫切需要
但是它们在新闻组上是常常被引用的。 同时,注意这些部分版本号,只用最新的,永远是较好的选择。
v2/readme.1st
每个程序员必读大文件, 包括了重要的升级信息,还有关于开始使用的简介
v2/djdev201.zip
绝对需要的ZIP包,这是基本的运行和开发包, 包含INCLUDE文件,C函库,标准工具,FPU的模拟器,时区
定义文件。
v2/faq210b.zip
FAQ文件,在你到论坛上问问题时,先读读它吧。
v2gnu/txi390b.zip
包含INFO。EXE程序, 可以用来读取在线文档资料。(比如在线帮助)
v2gnu/gcc2721b.zip
C语言编译器。和预处理器,几乎所有的程序都需要。
v2gnu/bnu27b.zip
是汇编编译器和连接器,和一些其他程序(像库文件)。所有的语言都需要这汇编程序的支持
v2gnu/mak375b.zip
MAKE就是跟踪你构造程序的程序。
v2misc/csdpmi3b.zip
如果你需要让你的程序运行在纯DOS下,那么需要CWSDPMI服务吧?那么这里面就有这些东西。
Other Languages
最基本的功能是实现C程序,但不要意外。DJGPP支持更多。
v2gnu/bsn124b.zip
DISON是一个YACC替换程序(????)你如果需要编译*.y的语言,就需要它
v2gnu/flx252b.zip
FLEX是LEX的预处理器
v2gnu/gpc20b.zip
PASCAL的编译器
v2gnu/gpp2721b.zip
C++的编译器
v2gnu/lgp271b.zip
C++的库,使用流,就需要它。
v2gnu/obc2721b.zip
Objective C的编译器
编程工具和帮助文件:
v2apps/rhide13b.zip
IDE编程包,由编辑器,编译器,在线帮助系统,调试程序,统一的界面。如果你对于基于
命令行的编译模式陌生大话,这可能是最好开始点。
v2gnu/em1934*.zip
GNU Emacs. This is the preferred text editor for many hard-core Unix programmers. You can also invoke the compiler or make from within, as well as read the online documentation and play games. You'll need to install all these zips; read the emacs.README first.
GNU的EMACS,(略,这就不需要翻了。)
v2gnu/gdb416b.zip
The GNU debugger. This is an extremely powerful full symbolic debugger, but you'd best read the docs before trying to use it.
GNU的调试器
v2gnu/bsh1147b.zip
BASH(再著名不过的UNIX的SHELL,也不想翻译了)
Ports of Unix programs
v2gnu/fil313b.zip
UNIX风格的文档工具(如果想运行SHELL脚本的话,需要这些基本的命令,LS,RM,CP,MV等)
。。。。。。
。。。。。。
略,都是些UNIX工具包。
工具
这些ZIP包,包含各种库和预编译的功能(函数)。 你不需要这些, 但是他们可以加速开发速度,如果
其中有对你有用的东西。
v2tk/alleg21.zip
ALLEGRO是一个流行的游戏库,包含对声音,游戏,鼠标,视频历程。
v2tk/bccgrx20.zip
使用BORLAND的图形函数接口。
v2tk/grx20.zip
DJGPP自己的图形函数接口
v2tk/jptui37d.zip
文字用户接口库
v2tk/pdc22.zip
公共域模拟,UNIX程序的接口。
v2tk/rsxntdj1.zip
使用这个包来写WIN95,WINNT的程序
v2tk/sw21_dj2.zip
v2tk/sw21_doc.zip
v2tk/sw21_p1.zip
v2tk/sw21_p2.zip
C++ GUI提供了NeXT-like界面
源程序
所有的ZIP包都包含了子包,结尾是S的就是源文件包。
v2/djlsr201.zip
DJGPP的C库源文件包。(学习的好教程)
v2/djtst201.zip
Sources for programs that are used to test the C library; not general purpose test programs but they to demostrate much of the functionality.
一些测试C库的源文件包,不是通常意义上的测试,却是很好的EXAMPLE文件.
|
REM 喜欢DOS,因为它的简单
REM 喜欢OS/2,因为它不再矫饰
REM 喜欢BASIC,因为它并不幼稚
REM 喜欢GNU,因为它杂乱无章 |
|
2003-7-17 00:00 |
|
|
lemonhall
高级用户
OS/2女孩
积分 639
发帖 183
注册 2003-6-14
状态 离线
|
『第
5 楼』:
这文件和DJGPP关系不大看懂了也不一定能安装它我看你还是看看那个README——1ST
吧好像更有用,时间短,翻的不好,不要在意啊。
|
REM 喜欢DOS,因为它的简单
REM 喜欢OS/2,因为它不再矫饰
REM 喜欢BASIC,因为它并不幼稚
REM 喜欢GNU,因为它杂乱无章 |
|
2003-7-17 00:00 |
|
|
红色狂想
金牌会员
龙哥DOS
积分 4289
发帖 1501
注册 2003-2-23 来自 河南省
状态 离线
|
『第
6 楼』:
lemonhall,太感谢你了!
|
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
C++ ☆☆☆ 中国DOS联盟成员 ☆☆☆ C++
C++ ★★★ 爱提问的红色狂想 ★★★ C++
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++ |
|
2003-7-18 00:00 |
|
|
lemonhall
高级用户
OS/2女孩
积分 639
发帖 183
注册 2003-6-14
状态 离线
|
『第
7 楼』:
不用谢,对我也很有启发,我正在翻译那篇readme.1st,过几天再贴上来,那篇文章更有普遍性。
|
REM 喜欢DOS,因为它的简单
REM 喜欢OS/2,因为它不再矫饰
REM 喜欢BASIC,因为它并不幼稚
REM 喜欢GNU,因为它杂乱无章 |
|
2003-7-18 00:00 |
|
|
红色狂想
金牌会员
龙哥DOS
积分 4289
发帖 1501
注册 2003-2-23 来自 河南省
状态 离线
|
『第
8 楼』:
那有劳“lemonhall”了,我等着!
|
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
C++ ☆☆☆ 中国DOS联盟成员 ☆☆☆ C++
C++ ★★★ 爱提问的红色狂想 ★★★ C++
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++ |
|
2003-7-18 00:00 |
|
|
Dark-Destroy
元老会员
积分 8312
发帖 3551
注册 2003-3-22
状态 离线
|
『第
9 楼』:
lemonhall,謝謝了~
|
MSN:tiqit2@hotmail.com
|
|
2003-7-18 00:00 |
|
|
lemonhall
高级用户
OS/2女孩
积分 639
发帖 183
注册 2003-6-14
状态 离线
|
『第
10 楼』:
###### # ##### ###### ######
# # # # # # # # #
# # # # # # # #
# # # # #### ###### ######
# # # # # # # #
# # # # # # # #
###### ##### ##### # #
DJ Delorie
This is the README.1ST file for DJGPP Version 2.03
本文件是DJGPP V2.03的README.1ST文件的中文版
(This is the README.1ST file for DJGPP Version 2.03 in Chinese Edition)
本文件由LEMONHALL于2003年7月翻译并加目录
电子邮件是lemonhall@vip.sina.com
QQ号是313813. 欢迎来信指正错误。
Copyright@1989-1999 DJ Delorie All rights reserved
Chinese (in simplified character only) translation rights
arranged with DJ Delorie
目录
分发包
开始
需要下载些什么
安装
编译
开发环境
调试
在线文档
阅读在线文档,使用Info
与2.00版本的兼容性
与1.x版本的兼容性
版权
************************************************************************
* This file contains information on obtaining, installing, and using *
* 本文件包含怎样获得,安装,使用DJGPP的信息,请先仔细、完整地阅读后 *
* DJGPP. Please read it *completely* before asking for help. *
* 再提出问题。 *
************************************************************************
DJGPP是在MS-DOS下开发32位保护模式软件的无产权环境。DJGPP在万维网的主页
是:
http://www.delorie.com/djgpp/
软件状态和其它的一些信息(在线文档,FAQ,邮件列表)可以通过网页来
查看。关于DJGPP的讨论和一些关于它使用或特征的问题可以通过新闻组来参与
(发到comp.os.msdos.djgpp)还有DJGPP的邮件列表(将邮件发到
)。 同时,请关注位于网站上关于最新的各种各样的
DJGPP的开发包。
关于版本的信息标明在每个压缩包根目录下的*.ver文件中,内容标明在每个
压缩包根目录下的*.mft文件中。
当然,用户还可以在万维网上取得交互的(通常是更好的)关于安装和使用
djgpp的教程:
http://www.delorie.com/djgpp/doc/
分发包
****************
DJGPP分发包包含许多以内容划分的子目录,每个子目录下都有一个用来
描述目录下各个文件的文件叫做00_index.txt
以'b'结尾的压缩包,包含着已经编译好的二进制文件和在线文档。在写这个
说明档的一刻,这些包有:
FAQ 指导你应该阅读哪些其它文档的文件(本身也包括全面的FAQ
列表)
v2/
unzip32 免费的解压ZIP文件的工具(就像PKUNZIP)
djdev203 DJGPP V2的开发包和运行时需要的动态连接库
djlsr203 DJGPP V2的基本库的源代码
djtst203 DJGPP V2的测试用程序(仅用来测试C函数库)
djcrx203 DJGPP V2的DOS编译器支持文件包
djtzn203 DJGPP V2的时区文件
djtzs203 DJGPP V2的时区源代码
faq*b 全部的FAQ列表(使用各种格式书写,Info, ASCII, HTML...)
faq*s The Texinfo sources of the FAQ and tools to generate all the
different formats of the FAQ
frfaq* 法语的DJGPP FAQ
v2apps/
(各种协同或为DJGPP工作的程序的集合,像RHIDE,TeX)
v2gnu/
(与多种FSF/GNU程序工作的接口,如gcc和binutils)
v2tk/
(各种开发工具,开发库,如Allegro和libsocket)
v2misc/
csdpmi* CWSDPMI, Charles Sandmann的免费DPMI服务程序和说明文件
mlp* ML的可执行文件打包器
pmode* PMODE stub for djgpp V2
wmemu* WM的可选的387仿真器
(还有很多为DJGPP准备杂项工具)
开始
***************
下面的信息是针对最小需求用户,介绍怎样快速上手。当然,对于一个新用户,
我们希望并鼓励您通过积极地阅读FAQ列表来得到更多的详细信息。
需要下载的文件
----------------
到http://www.delorie.com/djgpp/zip-picker.html可以看到一个基于表单
的说明,其中详细列出了你需要下载的分发包。通常情况下,用户并不需要
源文件,所以如果只是使用DJGPP那么只下载二进制包就足够了。
编译C程序,需要下载djdev203.zip, gcc*b.zip,和bnu*b.zip 。如要使用
C++则还需要下载gpp*b.zip
如果需要查找在线手册,则需要下载txi*b.zip,并且运行工具"info"。如果你使用
的是纯16位DOS则需要安装DPMI服务程序,安装包是csdpmi*b.zip(Windows
,QDPMI,386Max, NWDOS, OpenDOS, OS/2, Win/NT 和 Linux下的 DOSEmu已经提供了
良好的DPMI服务, 所以在这些环境下安装并运行DJGPP并不需要CWSDPMI)详细
信息可以查阅FAQ列表的第四章(下载faq*b.zip,且要保证是完整FAQ列表)
--"Where and What to Downlaod(在哪里并下载些什么)"
如果你使用Windows ME, 2000或者 XP,在2001年11月前的镜像文件很可能不能
正常工作,所以如果你使用以上的操作系统来运行DJGPP,那么确保你下载的是
最新的分发包。
安装
------------
1. 创建一个DJGPP的工作目录,比如说C:\DJGPP. (警告:不要将DJGPP安装到诸如
C:\DEV, D:\DEV这样的目录或子目录下:那将导致它不能工作。详细原因见FAQ
列表 )不要在使用长目录名,或者任何特殊字符,如空格等。
如果你曾安装过1.x版本,最好是放弃使用它,或干脆删除掉它们。当然你也
可以仅仅把它们移动到其它目录下,但是确保移动的目标目录不在你的PATH
环境变量里出现。(据调查,某些BUG报告是因为混用两个版本的DJGPP造成
的,事实上1.x版本中唯一可以保留的文件只有'go32.exe')
如果你使用Windows NT 4.0来运行DJGPP,在安装前,你需要决定你是否想使用
长文件名还是仅仅使用DOS 8.3的文件名格式。如果需要长文件名支持,你需要
在解压DJGPP分发包前,下载并安装TSR驱动程序包(ntlfn*b.zip)。
(译者注:建议不要使用WinNT 4.0来运行DJGPP)
2. 解开所有的压缩包,同时保留目录结构。例如:
pkunzip -d djdev203
或
unzip32 djdev203
在Windows 9x, Windows/ME, Windows 2000 和 Windows XP下,使用支持长文件
名的解压工具unzip。最新的InfoZip的UnZip, PKUnzip和WinZip都能支持长文件
名。DJGPP站点上的解压工具unzip32.exe同样可以很好地支持长文件名。一个确保
你正确地解压出长文件名文件的方法是,查看include/sys/sysmacros.h:如果你
只看到sysmacro.h那么你的解压工具并不支持长文件名,这时你需要另找一个真正
支持它的解压工具。
你必须在解压时确保,正确地保留了目录结构。 如果你使用的是WinZip,检查
复选框"Use folder names". 如果你使用pkunzip,确信你使用了-d参数开关。
在Windows/NT(NT version 4或者更低的版本,不是WIN2000)下,如果不加挂
TSR的长文件名驱动程序LFN,则unzip并不会正确地解压出长文件名文件,同时
DJGPP也不能访问长文件名的文件。所以在这里,我们推荐使用unzip32.exe,
它将能正确解压。
3. 正确解压完成后,设置环境变量指向在DJGPP安装目录下的文件DJGPP.ENV
并将DJGPP的BIN目录加入PATH环境变量队列中去。
确切的设置环境变量的方法取决于你使用的操作系统:
* 对于 Windows 98 系统:
- 单击 开始;
- 选择 程序->设置->系统工具->系统信息;
- 单击菜单栏上的 工具, 并选择 "系统配置";
- 按照如下所说的编辑 AUTOEXEC.BAT
* 对于 Windows ME 系统:
- 单击 开始, 选择 运行, 输入 msconfig.exe;单击 确定
- 单击 "环境" 分页;
- 编辑 PATH 系统变量将DJGPP 的bin子目录加入;
- 加入一个新变量DJGPP,并将它的值设置为DJGPP.ENV的全路径名。
(下面还有更详细的介绍)
* 对于 Windows NT 系统:
- 右键单击 "我的电脑", 选择 "属性";
- 单击 环境 分页;
- 编辑 PATH 系统变量将DJGPP 的bin子目录加入;
(如果你不是管理员〈administrator〉,将bin目录加入当前用户的PATH
变量中)
- 加入一个新变量DJGPP,并将它的值设置为DJGPP.ENV的全路径名。
(下面还有更详细的介绍)
* 对于 Windows 2000 或 Windows XP 系统:
- 右键单击 "我的电脑", 选择 "属性";
- 单击 高级 分页;然后单击 "环境变量"按钮
- 编辑 PATH 系统变量将DJGPP 的bin子目录加入;
(如果你不是管理员〈administrator〉,将bin目录加入当前用户的PATH
变量中)
- 加入一个新变量DJGPP,并将它的值设置为DJGPP.ENV的全路径名。
(下面还有更详细的介绍)
* 对于其它系统(DOS, Windows 3.x 和 Windows 95):使用标准的EDIT程序
编辑启动盘根目录下的AUTOEXEC.BAT就可以了。
作为编辑AUTOEXEC或全局变量的替代方案,你可能希望创建一个
DJGPP的快捷方式。如果这样做的话,需要创建一个批处理文件(*.bat)
并包含以下介绍的命令行。这种做法适于安装了多个编译系统的计算机。
无论使用哪种方式,我们都假设你将DJGPP安装至C:\DJGPP目录下,这样
需要设置的两个环境变量的命令就如下所写:
set DJGPP=C:\DJGPP\DJGPP.ENV
set PATH=C:\DJGPP\BIN;%PATH%
4. 重新启动。 这样可以使两行命令启用(在 Windows NT ,Windows 2000 和
Windows XP 环境变量即时生效, 所以如果你使用以上系统便无需重启。但是
还是需要关闭正在运行的DOS窗口,然后再次运行一个新的DOS窗口)
5. 运行程序 go32-v2.exe,不加任何参数:
go32-v2
它将报告可供DJGPP使用的DPMI内存及虚拟空间(swap)的大小,就像这样:
DPMI memory available: 8020 Kb
DPMI swap space available: 39413 Kb
确切的数字取决于你安装了多少物理内存,有多少硬盘空间和DPMI服务
程序的能力。 但是,如果go32-v2报告的两项空间加起来少于4MB,请阅读
FAQ列表的3.9节。"How to configure your system for DJGPP"(怎样为
DJGPP配置你的系统)(如果想在已经大于8MB的情况下优化运行
,那么你同样也可以参阅这一部分FAQ)
编译
-----------
GCC是可以在DOS命令行下使用的基于命令行的编译器,可以使用如下命令来编译并
连接单个C程序源文件:
gcc myfile.c -o myfile.exe -lm
-lm参数要求编译器连接时使用lib/libm.a库(三角数学函)。(连接要求需要
显式声明。这意味着,如果你需要使用libm.a就必须在编译时,在命令行结尾
加上参数'-lm')
使用以下命令,从而将C或C++源码编译为OBJ文件:
gcc -c -Wall myfile.c (for C source)
或
gcc -c -Wall myfile.cc (for C++ source)
这样便编译出文件myfile.o。 参数开关`-Wall'打开了GCC编译器的警告
模式,这些警告信息对于新用户是十分有用的。(GCC也支持其它很多扩展名,
如.cpp。 关于这些可以参阅FAQ的8.4节 "How does GCC recognize the
source language")
使用如下命令行,将多个目标文件(OBJ)编译成为可执行文件:
gcc -o myprog.exe mymain.o mysub1.o mysub2.o
这样便编译出在DOS下的可执行文件`myprog.exe'
可以像这样连接C++程序:
gxx -o myprog.exe mymain.o mysub1.o mysub2.o
这时,程序会自动搜索C++的库,所以你完全不必像上面一样,担心需要设置
有关 C++ 库的参数。
你也可以将编译和连接这两个步骤一起执行:
gcc -Wall -o myprog.exe mymain.c mysub1.c mysub2.c
更多的关于GCC运行参数的资料,可以参阅在线文档。在阅读前,你必需确认
是否正确地安装了Texinfo在线文档阅读工具。(找到txi*b.zip,并阅读下面
有关在线文档的章节)
安装成功后,可以这样查找有关资料:
info gcc invoking
开发环境 (aka IDE)
---------------------------------
诚然,DJGPP并没有一个自己的集成环境。但这也意味着,你可以自由地
选择任何可以运行DOS程序,查看运行后输出的编辑器来作为IDE。许多
程序员都使用一个基于DOS的GNU Emacs与DJGPP协同工作。(可以在
v2gnu子目录中找到它)Emacs 是一个非常强大的编辑器(比如,它拥有内置
的Info阅读机能,这样你就可以不用退出编辑器去阅读DJGPP的在线文档
),当然其它很多免费的编辑器同样也可以胜任IDE的工作。这些准IDE
(包括Emacs)唯一不能胜任的工作就是,进行全屏幕的调试工作。
一个被称作RHIDE,专属DJGPP的IDE,不久前向所有DJGPP
用户发布了。它具有Turbo C风格的IDE界面,自动缩进,语句着色,高亮
显示语句,自动调用DJGPP编译器,自动生成Makefile,可以方便地阅读在线
文档。而且更激动人心的是,RHIDE还集成了如同GNU Debugger (gdb)一
般强大的高度集成的调试环境。因为RHIDE还是一个新生的软件,现在还
有众多BUG等待调试。所以如果您感兴趣的话,请访问:
http://www.tu-chemnitz.de/~sho/rho/rhide.html
来获取最新的资料。
(译者注:RIHID已经成为广泛使用的工具包了,建议大家都下载并掌握
它的使用)
调试
---------
如果需要调试程序,你必需在编译时加入参数开关`-g':
gcc -c -Wall -g mymain.c
gcc -c -Wall -g mysub1.c
gcc -c -Wall -g mysub2.c
当然也可以在连接时加入参数`-g':
gcc -g -o myprog.exe mymain.o mysub1.o mysub2.o
(注意:如果使用DJGPP v2.01版本时,并没有任何必要将程序输出成COFF
以便调试程序。(省略文件名中的`.exe'后缀名就可以达到这个目的) v2.01版
及其之后版本的调试器完全有能力直接读取可执行文件来进行调试,如同调试C
OFF格式文件一样。当然,如果你无法完全明了这是什么意思,也无需担心。)
然后在调试器下运行你的程序:
fsdb myprog.exe
或
gdb myprog.exe
再或
edebug32 myprog.exe
(如果你希望使用GDB调试程序,那么你需要下载gdb*b.zip)
FSDB有自己的帮助画面,可以按下F1调用帮助。 GDB的帮助文件只能使用
Info来阅读。Edebug32是一个很少使用的集成调试器,运行后按'h'来调用
帮助。
|
REM 喜欢DOS,因为它的简单
REM 喜欢OS/2,因为它不再矫饰
REM 喜欢BASIC,因为它并不幼稚
REM 喜欢GNU,因为它杂乱无章 |
|
2003-7-20 00:00 |
|
|
lemonhall
高级用户
OS/2女孩
积分 639
发帖 183
注册 2003-6-14
状态 离线
|
『第
11 楼』:
在线文档
------------
大多数的在线文件都是以 GNU 项目工程使用的特殊的超文本格式储存的。每个包
中都有自己的Info格式文档,它们是后缀为 .iNN 的文件,解压至DJGPP的主安装
目录下的子目录info/中。要游览这些文档,需要下载 txi*b.zip,然后运行info.exe
如果你不知道怎样使用 Info,可以阅读下面的章节。
阅读在线文档,使用Info
----------------------------------------------------
下面的说明不能认为是一个使用Info的完整教程,只能作为初步的指导,所以
你需要查阅更多的文档,并留心专门的章节。
要运行Info以阅读在线手册,需要在info命令后加入手册名。例如:
- 输入 "info libc" 以便阅读有关于 C语言库函数的支持文档;
- 输入 "info libc alphabetical printf" 以便查阅函数'printf'的说明
- 输入 "info gcc" 来阅读GCC用户手册(the GNU C compiler);
- 输入 "info faq" 以查看DJGPP的FAQ列表;
- 输入 "info make" 以阅读Make 工具的用户手册;
- 输入 "info" 以便列出 手册的菜单清单.
按'q'退出Info。
一旦成功运行Info,你便可以使用上下键或者PgDn,PgUp来游览文件。
阅读完一屏后,按下‘SPACE’键来翻屏,通过这个功能键便可以游览手册的各
个章节。
菜单项前有标记"* Menu:"。每个以"*"号开头的行都称为菜单项。可以通过将
光标移至星号下并按下回车键来选择一个菜单项。
超文本联接的标记为"* Note"。如果需要参阅一个联接,如上所说。将光标移动
至星号下,并按下回车。如果需要返回,则可以键入小写的'l'键。(Last的意思)
如需要快速查询索引信息,可以键入'i'(意为Index),并随后键入欲查的主题,
最后以回车结尾。你可以只键入部分查找主题,然后按下Tab键来自动补足主题。
(前提是你输入了完整主题的一部分单词)。如果按下Tab键后,系统鸣叫了一声
或者文字开始闪烁,那这就意味着没有和你输入单词匹配的主题。删去你刚才输入
的单词(使用BackSpace键),并尝试键入其它与你欲查找的内容相关的单词。
然后,如果系统成功地补足了你键入的主题,而且碰巧那正是你需要的资料,那么
键入回车来查看。当然,找到你所想要的主题,这需要你多次的尝试,你需要的是,
耐心查找。
比如,你想要查找有关输出的错误信息"ld.exe: cannot open -lstdcxx: No such
file or directory"的确切意思。那么,启动Info系统,键入`i'并输入`c a n TAB'
(没有那些空格)。第一次键入的TAB键,只是将can变成Can,但这说明存在以Can
开头的索引项,于是再次键入TAB键,显示出很多可能的条目。不要激动,在输出的
以Can开头的索引列表中没有一个是你需要的。所以,只有删除单词Can,然后尝试
键入'-lstd'并按Tab补足,现在Info只列出一个条目,恰巧,那正是你所需要的资料
最后,键入回车键,仔细阅读FAQ有关那条错误信息的描述吧。
如果你希望手动查找索引中的项目,那么在最高级菜单项中查找包含有'Index'
字眼的条目,进入其中,然后就可以任意游览所有的索引了。
关于库的参考没有索引,所以只能在函数表中查找,或使用函数的类型来查询有关
内容。例如库函数'mktime'属于时间函数(Time Functions),'random'是属于
"随机数字函数"(Random Number Functions)等等。
(译者注:就是说可以查询Time Functions来查找mktime函数)
在一些情况下,查找索引并不会帮助你找到所需的资料(因为不可能列出所有的问题
)所以键入's'(意味 Search查询),键入你要查询的资料,而后键入回车。Info
将会进行全文搜索,并列出找到的第一个符合项,如要查找下一个匹配的项目可以
再次键入`s'和回车键。系统会再次搜索。
最后,如果你在哪个手册中查找你想要的资料,你可以使用"--apropos"参数开关
强迫Info遍历所有已经安装的手册,为你查找你所需要的资料。例如,你听说DJGPP
程序支持通配符,但是你不知道关于它的描述在哪部手册中。下面的命令便可以命令
Info系统列出在所有手册中有关通配符的章节("wildcards")
info --apropos=wildcard
当然,这会花一些时间,系统将会列出类似如下内容的列表:
"(kb)Features" -- Wildcards
"(kb)Changes in 2.01" -- wildcards
"(djgppfaq)Filename globbing" -- Filename wildcards expansion
引号中的是手册名(括号中)和章节名(如Features),如果要查看列出的章节,
可以键入如下命令:
info --node="(kb)Features"
Info有很多的命令和开关。如果要查看这些,键入"info info",仍需要更多信息
可以键入"info info-standalone"
与2.00版本的兼容性
------------------------
如果你是从V2.00版本升级的,那么便需要完全重新安装所有你需要使用的包。
因为2.01版本及之后版本处理长命令行(和在WIN95下处理长文件名),2.00版与新
版本混合使用会导致很多调试问题。 详情见FAQ列表的16.6节
与V1.x版本的兼容性
-----------------------
任何已编译的V1.x DJGPP可以很好地独立工作。 V1 版本的程序不能运行 V2的
程序(但,V2程序却可以运行V1的程序),所以不要尝试使用V1.x的Make程序
去运行v2.x的编译器。
--- 版权 ---
DJGPP V2 is Copyright (C) 1989-1999 by DJ Delorie. Some parts of
libc.a are Copyright (C) Regents of the University of California at
Berkeley.
GNU software (gcc, make, libg++, etc) is Copyright by the Free
Software Foundation.
DJGPP V2的版权允许它用做商业用途。 然而,如果你引用了非DJGPP的库文件
(比如 GNU的 libg++)那么,你就需要遵守他们的版权协议。参见FAQ列表的
19章来获取更多的信息。
在新闻组上曾讨论过一段时间,内容是关于部分C函数库的版权问题。要取得
这个版权就不得不提到加州的贝克利分校。这样,即便是在你的编译版本中也
不得不需要版权声明。值得庆兴的是,贝克利的版权在1999年的7月已经到期。
你再也不需要在你的分发包中,在意关于那部分的版权问题了。
在这里,列出这些与贝克利版权有关的函数和文件:
libc/ansi/time/ctime.c: asctime ctime gmtime localtime mktime
tzset tzsetwall
libc/compat/stdlib/random.c: initstate random setstate srandom
==============================================================================
Enjoy!
DJ Delorie
dj@delorie.com
http://www.delorie.com/
|
REM 喜欢DOS,因为它的简单
REM 喜欢OS/2,因为它不再矫饰
REM 喜欢BASIC,因为它并不幼稚
REM 喜欢GNU,因为它杂乱无章 |
|
2003-7-20 00:00 |
|
|
lemonhall
高级用户
OS/2女孩
积分 639
发帖 183
注册 2003-6-14
状态 离线
|
『第
12 楼』:
啊,终于翻完了。:)
最后,在线文档那章很多都是意译,见晾。
|
REM 喜欢DOS,因为它的简单
REM 喜欢OS/2,因为它不再矫饰
REM 喜欢BASIC,因为它并不幼稚
REM 喜欢GNU,因为它杂乱无章 |
|
2003-7-20 00:00 |
|
|
Dark-Destroy
元老会员
积分 8312
发帖 3551
注册 2003-3-22
状态 离线
|
『第
13 楼』:
lemonhall,非常感謝你~
|
MSN:tiqit2@hotmail.com
|
|
2003-7-20 00:00 |
|
|
50030
中级用户
50030
积分 263
发帖 49
注册 2002-11-8 来自 广东
状态 离线
|
『第
14 楼』:
我佩服你.
|
clipper 有谁在用?交流一下 |
|
2003-7-22 00:00 |
|