中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » [转帖] DJGPP--32位的C语言编程环境
« [1] [2] [3] [4] »
作者:
标题: [转帖] DJGPP--32位的C语言编程环境 上一主题 | 下一主题
红色狂想
金牌会员

龙哥DOS


积分 4289
发帖 1501
注册 2003-2-23
来自 河南省
状态 离线
『第 31 楼』:  

Wengier 站长,不好意思!你能不能依照先后顺序,再介绍一下上面哪个DJGPP,从下载到安装使用的全部过程呀?
     小弟在这里谢谢了!



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-5-10 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (189236106)  编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 32 楼』:  

这个嘛,就真的说来话长了呢。您不妨看看它的说明文件,里面有下载文件的说明的。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-5-10 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
红色狂想
金牌会员

龙哥DOS


积分 4289
发帖 1501
注册 2003-2-23
来自 河南省
状态 离线
『第 33 楼』:  

我是害怕看英文的,哪个下载文件中肯定是英文,哎!!!



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-5-11 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (189236106)  编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 34 楼』:  

到时候DD会建个DOS的DJGPP专页的,里面肯定是中文的。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-5-13 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
zykdos
初级用户




积分 183
发帖 31
注册 2003-8-1
状态 离线
『第 35 楼』:  

找不到了,没有该目录了。站长能否自己开辟一个专区下载

2003-8-1 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lemonhall
高级用户

OS/2女孩


积分 639
发帖 183
注册 2003-6-14
状态 离线
『第 36 楼』:  

我觉得关于各种系统的安装问题,包括使用。都已经讲得很清楚了,
怎么还会有这么多疑问??????????????

=============================================
                                 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-8-1 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (313813)  编辑帖子  回复  引用回复
lemonhall
高级用户

OS/2女孩


积分 639
发帖 183
注册 2003-6-14
状态 离线
『第 37 楼』:  

在线文档
------------

大多数的在线文件都是以 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-8-1 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (313813)  编辑帖子  回复  引用回复
lemonhall
高级用户

OS/2女孩


积分 639
发帖 183
注册 2003-6-14
状态 离线
『第 38 楼』:  

最需要问的就是红色狂想,我自己按照我翻的文章,认真地从JAPAN的FTP服务器把
安装包下了下来。  认真地测试了我的翻译内容,还特地装了NT4,2000来测试文件
中提到的问题。

可是,你怎么就不认认真真地读读文章呢???  那可是DJGPP的创史者写的README
啊!!!!!他的文章的开头还特地地提到

  This file contains information on obtaining, installing, and using
  DJGPP.  Please read it *completely* before asking for help.

这可不是白写的啊!!!!!!!!看到你提的很多问题,我都快晕过去了,你仔细
地看过这篇README么?

实在不行,还有Wengier啊,就算我翻的地方有不对的地方,你把英文原文给他看,不
就好了?

Wengier更让我郁闷了,回答了问题却引出新的问题,让人更加迷惑。回答问题时不能
以为大家都懂啊!要把所有提问题的人都当作初级用户啊!!!!

还有,Wengier根本没有更新DJGPP的联结。 这真的很难么??SIMNET的哪个联结更是
错误的,只有在它的镜像上才能找到老的DJGPP联结。

=====================================================



REM              喜欢DOS,因为它的简单
REM            喜欢OS/2,因为它不再矫饰
REM            喜欢BASIC,因为它并不幼稚
REM             喜欢GNU,因为它杂乱无章
2003-8-1 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (313813)  编辑帖子  回复  引用回复
lemonhall
高级用户

OS/2女孩


积分 639
发帖 183
注册 2003-6-14
状态 离线
『第 39 楼』:  

最后,补充到,下载目录里的那个说明文件,就是上边我贴出来的内容。
翻译的版权,我问过DJGPP的作者了,中文翻译版权是作者自己的。

文章里面的网址经过测试,其中
关于RIDE的连接
http://www.tu-chemnitz.de/~sho/rho/rhide.html
是错误的。

邮件列表
comp.os.msdos.djgpp
是错误的

以外,其他连接都可用。




REM              喜欢DOS,因为它的简单
REM            喜欢OS/2,因为它不再矫饰
REM            喜欢BASIC,因为它并不幼稚
REM             喜欢GNU,因为它杂乱无章
2003-8-1 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (313813)  编辑帖子  回复  引用回复
lemonhall
高级用户

OS/2女孩


积分 639
发帖 183
注册 2003-6-14
状态 离线
『第 40 楼』:  

因为看了很多不应该有的问题,言语过激。多有冒犯,还请原谅。

最后,是一个真诚的建议。

学习C,不需要在DJGPP下学习。开发工作更不需要在DJGPP下进行。
因为非专业人员,开发DOS的程序,根本不需要突破那640K,因为
往往就用不了超过200K的内存。

除非你开发 图形,声音,游戏,大文本编辑,解码程序时,或者需要
(并且是必须,不得不)引用DJGPP的 库/模版(根本不是C的内容)
[当然,你如果是高手,想开发C++写的东西,那用他也可以,因为他
是GNU项目,最大的好处就是伸缩性]




REM              喜欢DOS,因为它的简单
REM            喜欢OS/2,因为它不再矫饰
REM            喜欢BASIC,因为它并不幼稚
REM             喜欢GNU,因为它杂乱无章
2003-8-1 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (313813)  编辑帖子  回复  引用回复
lemonhall
高级用户

OS/2女孩


积分 639
发帖 183
注册 2003-6-14
状态 离线
『第 41 楼』:  

转贴的文章,写得很好。 作者风云,可谓是DJGPP的忠实用户了。
他使用DJGPP+ALLEGRO开发的驱动底层,简化了DOS下开发游戏
时,调用DIRETX的繁复过程。

虽然,没有下载过这个库。但是,这个应用本身不就说明么DJGPP
的应用范围么???

我在这里,不是反对使用DJGPP,或者学习DJGPP。而是大大的鼓励。
要不然,我也不会辛苦地翻译那些  初级的README文件了。

作为一种选择,使用DJGPP是有代价的。

首先,是资料的匮乏。现在中文资料只有关于ALLEGRO的是中文的,
真正可用的中文资料,是没有的。(不像很多其他DOS下的编译器)

其次,使用CWSDPMI的DPMI服务,是有代价的。DJGPP不是商业包
,CWSDPMI最初也不是专门为DJGPP开发的。它的版本号*******
注意,它的版本号,是小于1的。意味着,它的不稳定性。
(例子也很简单,我请PERL4。036的爱好者测试使用CWSDPMI服务的
PERL编译器,在小内存计算机上,很容易造成系统崩溃,却不像DOS4GW,
它慢,它大,但它的版本号大于1,更稳定一些。)
[关于这点,我保留自己的意见,因为我的测试方法并不科学,只是直观上的
崩溃次数累计]





REM              喜欢DOS,因为它的简单
REM            喜欢OS/2,因为它不再矫饰
REM            喜欢BASIC,因为它并不幼稚
REM             喜欢GNU,因为它杂乱无章
2003-8-1 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (313813)  编辑帖子  回复  引用回复
lemonhall
高级用户

OS/2女孩


积分 639
发帖 183
注册 2003-6-14
状态 离线
『第 42 楼』:  

最后,做一个真诚的提议:

如果对DJGPP真的这么感兴趣的话,开一个项目好么?
先翻译,再写文章(关于使用经验的)

如果单纯地开一个网站,转一堆别人的东西。那并没有
太大的意义。因为DJGPP的发展太快了,很多文章,库
软件,源代码,都不能用了。

DD需要合作的话,说一声。

如果看耐心地看完了我说的这一堆废话,感谢。感谢。



REM              喜欢DOS,因为它的简单
REM            喜欢OS/2,因为它不再矫饰
REM            喜欢BASIC,因为它并不幼稚
REM             喜欢GNU,因为它杂乱无章
2003-8-1 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (313813)  编辑帖子  回复  引用回复
ATLaS
初级用户




积分 169
发帖 29
注册 2003-7-9
状态 离线
『第 43 楼』:  

cwsdpmi的版本号小于1??我怎么记得跟着v2.03的是v5?
我认为cwsdpmi更好的原因是它能提供完整的dpmi spec 0.9支持,在protected mode下的编程要比dos4gw简单些,至少中断我可以用完整的irq0~irq15而不用写real mode和protected mode下的两个isr。

djgpp我也是才用不久,之前一直用watcom c,感觉djgpp还是很不错的,它官方主页上的文档是很齐全的,有两个文档必备:user guide和window hlp格式的文档集合。读完了基本上就能搞定绝大多数问题。学习编程,一定要学会读英文文档,不然会非常被动。

2003-8-1 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lemonhall
高级用户

OS/2女孩


积分 639
发帖 183
注册 2003-6-14
状态 离线
『第 44 楼』:  

2.03是DJGPP的版本号,CWSDPMI对dpmi spec 0.9的支持也并不完全。但我承认,它比
DOS4GW好,因为它在发展。而后者已经没有进一步的发展了。v5可不是主版本号啊!
而且,最让人郁闷的是,CWSDPMI在错误输出上,少得可怜。这和它的小巧也有关系。



REM              喜欢DOS,因为它的简单
REM            喜欢OS/2,因为它不再矫饰
REM            喜欢BASIC,因为它并不幼稚
REM             喜欢GNU,因为它杂乱无章
2003-8-2 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (313813)  编辑帖子  回复  引用回复
lemonhall
高级用户

OS/2女孩


积分 639
发帖 183
注册 2003-6-14
状态 离线
『第 45 楼』:  

现在把GNU项目关于版本编号的规则介绍一下。
PERL,DJGPP,LINUX,等著名的GNU软件都是
按照这种命名规则的(其实PERL是从PERL5以后
真正开始应用GNU命名规则的)

GNU的命名规则是:以所有字母都小写的主名称
作为前缀,后跟一个破折号,再跟一个版本号,
扩展说明,以及其他后缀。

由此可见,DJGPP的命名方法也不是完全GNU化的
存在着2。03这种版本号。(和PERL1。303一样的
命名方法)





REM              喜欢DOS,因为它的简单
REM            喜欢OS/2,因为它不再矫饰
REM            喜欢BASIC,因为它并不幼稚
REM             喜欢GNU,因为它杂乱无章
2003-8-2 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (313813)  编辑帖子  回复  引用回复
« [1] [2] [3] [4] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: