⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000009.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 5 页
字号:
(Practical&nbsp;Extraction&nbsp;Report&nbsp;Language)编写用来处理文本文件和生成报表的脚本程&nbsp;<BR>序,还可以利用&nbsp;Tcl/Tk&nbsp;的脚本程序编写图形用户界面。如果恰当地使用这些脚本语言,&nbsp;<BR>可以达到事半功倍的效果。在&nbsp;Windows&nbsp;NT&nbsp;下,能够被称为脚本语言的大概算是&nbsp;VBA(Visual&nbsp;&nbsp;<BR>Basic&nbsp;for&nbsp;Application),但&nbsp;VBA&nbsp;仅在有限的应用软件中支持,例如,Microsoft&nbsp;Office,&nbsp;<BR>而并不被操作系统支持。现在,Microsoft&nbsp;正打算将&nbsp;Perl&nbsp;的支持添加到它的操作系统中。&nbsp;<BR>本章将简单介绍一些&nbsp;Linux&nbsp;下常见的开发工具以及有关&nbsp;Perl&nbsp;脚本编程的知识。由&nbsp;<BR>于&nbsp;Tcl/Tk&nbsp;主要是用来编写图形用户界面的,我们将在下一章讲解&nbsp;Tcl/Tk&nbsp;的使用。&nbsp;<BR>13.3&nbsp;&nbsp;Linux&nbsp;上的开发工具&nbsp;<BR>13.3.1&nbsp;&nbsp;获取帮助&nbsp;<BR>在&nbsp;Linux&nbsp;上,程序员获取帮助的最常用工具是&nbsp;man&nbsp;或&nbsp;xman。利用&nbsp;man&nbsp;或&nbsp;xman,&nbsp;<BR>程序员可以查看特定函数的说明。例如,键入&nbsp;man&nbsp;printf&nbsp;将显示&nbsp;printf&nbsp;函数的详细调&nbsp;<BR>用接口。由于&nbsp;Linux&nbsp;上大部分软件开发工具都来自自由软件基金会的&nbsp;GNU&nbsp;项目,因此,&nbsp;<BR>程序员可以使用另外一个程序获得有关开发工具使用的详细帮助信息,这一程序就是&nbsp;&nbsp;<BR>info,它是&nbsp;GNU&nbsp;的超文本帮助系统。程序员可在命令行键入&nbsp;info&nbsp;进入&nbsp;info&nbsp;帮助系统,&nbsp;<BR>也可在&nbsp;Emacs&nbsp;中键入&nbsp;Esc-x,&nbsp;info(或&nbsp;C-h,&nbsp;i)而进入&nbsp;info&nbsp;帮助系统。&nbsp;<BR>在&nbsp;info&nbsp;中,在线帮助文本被组织成一个个节点(node),每个节点代表一个特定的&nbsp;<BR>主题。屏幕上的第一行显示了该节点的标题,如图&nbsp;13-1&nbsp;所示。&nbsp;<BR>(屏幕图)&nbsp;<BR>图&nbsp;13-1&nbsp;&nbsp;在&nbsp;Emacs&nbsp;中访问&nbsp;info&nbsp;帮助系统&nbsp;<BR>info&nbsp;帮助系统的初始屏幕显示了一个主题目录,你可以将光标移动到带有&nbsp;*&nbsp;的主题&nbsp;<BR>菜单上面,然后按回车键进入该主题,也可以键入&nbsp;m,后跟主题菜单的名称而进入该主题。&nbsp;<BR>例如,你可以键入&nbsp;m,然后再键入&nbsp;gcc&nbsp;而进入&nbsp;gcc&nbsp;主题中。&nbsp;<BR>如果你要在主题之间跳转,则必须记住如下的几个命令键:&nbsp;<BR>?&nbsp;n:跳转到该节点的下一个节点;&nbsp;<BR>?&nbsp;p:跳转到该节点的上一个节点;&nbsp;<BR>?&nbsp;m:&nbsp;指定菜单名而选择另外一个节点;&nbsp;<BR>?&nbsp;f:进入交叉引用主题;&nbsp;<BR>?&nbsp;l:进入该窗口中的最后一个节点;&nbsp;<BR>?&nbsp;TAB:跳转到该窗口的下一个超文本链接;&nbsp;<BR>?&nbsp;RET:进入光标处的超文本链接;&nbsp;<BR>?&nbsp;u:转到上一级主题;&nbsp;<BR>?&nbsp;d:回到&nbsp;info&nbsp;的初始节点目录;&nbsp;<BR>?&nbsp;h:调出&nbsp;info&nbsp;教程;&nbsp;<BR>?&nbsp;q:退出&nbsp;info。&nbsp;<BR>13.3.2&nbsp;&nbsp;GNU&nbsp;C&nbsp;和&nbsp;C++&nbsp;编译器&nbsp;<BR>Linux&nbsp;中最重要的软件开发工具是&nbsp;GCC。GCC&nbsp;是&nbsp;GNU&nbsp;的&nbsp;C&nbsp;和&nbsp;C++&nbsp;编译器。实际上,&nbsp;<BR>GCC&nbsp;能够编译三种语言:C、C++&nbsp;和&nbsp;Object&nbsp;C(C&nbsp;语言的一种面向对象扩展)。利用&nbsp;gcc&nbsp;命&nbsp;<BR>令可同时编译并连接&nbsp;C&nbsp;和&nbsp;C++&nbsp;源程序。&nbsp;<BR>13.3.2.1&nbsp;&nbsp;GCC&nbsp;基本使用&nbsp;<BR>利用&nbsp;GCC&nbsp;编译并连接少数几个&nbsp;C&nbsp;源文件是简单的。假设读者的一个程序只有一个源&nbsp;<BR>文件&nbsp;hello.c,其内容如下:&nbsp;<BR>#include&nbsp;&lt;stdio.h&gt;&nbsp;<BR>#include&nbsp;&lt;stdlib.h&gt;&nbsp;<BR>&nbsp;<BR>int&nbsp;main&nbsp;()&nbsp;<BR>{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(&quot;Hello,&nbsp;world!\n&quot;);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;<BR>}&nbsp;<BR>则只需在命令键入&nbsp;gcc&nbsp;-o&nbsp;hello&nbsp;hello.c&nbsp;就可以编译、连接并生成一个可执行文件&nbsp;&nbsp;<BR>hello:&nbsp;<BR>[WeiYM@versa&nbsp;gcc]$&nbsp;gcc&nbsp;-o&nbsp;hello&nbsp;hello.c&nbsp;<BR>[WeiYM@versa&nbsp;gcc]$&nbsp;./hello&nbsp;<BR>Hello,&nbsp;world!&nbsp;<BR>如果你有两个或少数几个&nbsp;C&nbsp;源文件,也可以方便地利用&nbsp;GCC&nbsp;编译、连接并生成可执&nbsp;<BR>行文件。例如,假设你有两个源文件&nbsp;main.c&nbsp;和&nbsp;factorial.c&nbsp;两个源文件,现在要编译&nbsp;<BR>生成一个计算阶乘的程序。这两个源文件的内容如清单&nbsp;13-1&nbsp;和清单&nbsp;13-2&nbsp;所示。&nbsp;<BR>清单&nbsp;13-1&nbsp;&nbsp;factorial.c&nbsp;<BR>―――――――――――――――――――――――――――――――――――――――&nbsp;<BR>#include&nbsp;&lt;stdio.h&gt;&nbsp;<BR>#include&nbsp;&lt;stdlib.h&gt;&nbsp;<BR>&nbsp;<BR>int&nbsp;factorial&nbsp;(int&nbsp;n)&nbsp;<BR>{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(n&nbsp;&lt;=&nbsp;1)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;1;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;factorial&nbsp;(n&nbsp;-&nbsp;1)&nbsp;*&nbsp;n;&nbsp;<BR>}&nbsp;<BR>―――――――――――――――――――――――――――――――――――――――&nbsp;<BR>清单&nbsp;13-2&nbsp;&nbsp;main.c&nbsp;<BR>―――――――――――――――――――――――――――――――――――――――&nbsp;<BR>#include&nbsp;&lt;stdio.h&gt;&nbsp;<BR>#include&nbsp;&lt;stdlib.h&gt;&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>int&nbsp;factorial&nbsp;(int&nbsp;n);&nbsp;<BR>&nbsp;<BR>int&nbsp;main&nbsp;(int&nbsp;argc,&nbsp;char&nbsp;**argv)&nbsp;<BR>{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;n;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(argc&nbsp;&lt;&nbsp;2)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(&quot;Usage:&nbsp;%s&nbsp;n\n&quot;,&nbsp;argv&nbsp;[0]);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-1;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;=&nbsp;atoi&nbsp;(argv[1]);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(&quot;Factorial&nbsp;of&nbsp;%d&nbsp;is&nbsp;%d.\n&quot;,&nbsp;n,&nbsp;factorial&nbsp;(n));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;<BR>}&nbsp;<BR>―――――――――――――――――――――――――――――――――――――――&nbsp;<BR>利用如下的命令可编译生成可执行文件,并执行程序:&nbsp;<BR>[WeiYM@versa&nbsp;gcc]$&nbsp;gcc&nbsp;-o&nbsp;factorial&nbsp;main.c&nbsp;factorial.c&nbsp;<BR>[WeiYM@versa&nbsp;gcc]$&nbsp;./factorial&nbsp;5&nbsp;<BR>Factorial&nbsp;of&nbsp;5&nbsp;is&nbsp;120.&nbsp;<BR>在上面的&nbsp;GCC&nbsp;命令选项中,使用了一个&nbsp;-o&nbsp;选项,该选项指定了编译/连接生成的输&nbsp;<BR>出文件的名称。如果不指定该输出文件的名称,则&nbsp;GCC&nbsp;自动建立一个&nbsp;a.out&nbsp;文件。&nbsp;<BR>我们也可以分别对上述两个文件进行编译,然后再连接起来,这时可使用&nbsp;GCC&nbsp;的&nbsp;-c&nbsp;选&nbsp;<BR>项,如下所示:&nbsp;<BR>[WeiYM@versa&nbsp;gcc]$&nbsp;gcc&nbsp;-c&nbsp;main.c&nbsp;<BR>[WeiYM@versa&nbsp;gcc]$&nbsp;gcc&nbsp;-c&nbsp;factorial.c&nbsp;<BR>[WeiYM@versa&nbsp;gcc]$&nbsp;gcc&nbsp;-o&nbsp;factorial&nbsp;main.o&nbsp;factorial.o&nbsp;<BR>[WeiYM@versa&nbsp;gcc]$&nbsp;./factorial&nbsp;10&nbsp;<BR>Factorial&nbsp;of&nbsp;10&nbsp;is&nbsp;3628800.&nbsp;<BR>13.3.2.2&nbsp;&nbsp;用&nbsp;GCC&nbsp;编译&nbsp;C++&nbsp;程序&nbsp;<BR>GCC&nbsp;可同时用来编译&nbsp;C&nbsp;程序和&nbsp;C++&nbsp;程序。一般来说,C&nbsp;编译器通过源文件的后缀名&nbsp;<BR>来判断是&nbsp;C&nbsp;程序还是&nbsp;C++&nbsp;程序。在&nbsp;Linux&nbsp;中,C&nbsp;源文件的后缀名为&nbsp;.c,而&nbsp;C++&nbsp;源文&nbsp;<BR>件的后缀名为&nbsp;.C&nbsp;或&nbsp;.cpp。&nbsp;<BR>但是,gcc&nbsp;命令只能编译&nbsp;C++&nbsp;源文件,而不能自动和&nbsp;C++&nbsp;程序使用的库连接。因此,&nbsp;<BR>通常使用&nbsp;g++&nbsp;命令来完成&nbsp;C++&nbsp;程序的编译和连接,该程序会自动调用&nbsp;gcc&nbsp;实现编译。&nbsp;<BR>假设我们有一个如下的&nbsp;C++&nbsp;源文件(hello.C):&nbsp;<BR>#include&nbsp;&lt;iostream.h&gt;&nbsp;<BR>&nbsp;<BR>void&nbsp;main&nbsp;(void)&nbsp;<BR>{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;&quot;Hello,&nbsp;world!&quot;&nbsp;&lt;&lt;&nbsp;endl;&nbsp;<BR>}&nbsp;<BR>则可以如下调用&nbsp;g++&nbsp;命令编译、连接并生成可执行文件:&nbsp;<BR>[WeiYM@versa&nbsp;gcc]$&nbsp;g++&nbsp;-o&nbsp;hello&nbsp;hello.c&nbsp;<BR>[WeiYM@versa&nbsp;gcc]$&nbsp;./hello&nbsp;<BR>Hello,&nbsp;world!&nbsp;<BR>13.3.2.3&nbsp;&nbsp;GCC&nbsp;的其他选项&nbsp;<BR>gcc&nbsp;命令的基本语法是:&nbsp;<BR>gcc&nbsp;options&nbsp;filename&nbsp;<BR>gcc&nbsp;的选项一般以减号(-)开头,有短的选项,例如上面看到的&nbsp;-o&nbsp;或&nbsp;-c,也有长&nbsp;<BR>的选项。表&nbsp;13-1&nbsp;给出了&nbsp;gcc&nbsp;命令的常用选项。&nbsp;<BR>表&nbsp;13-1&nbsp;&nbsp;gcc&nbsp;命令的常用选项&nbsp;<BR>选项&nbsp;<BR>解释&nbsp;<BR>-ansi&nbsp;<BR>只支持&nbsp;ANSI&nbsp;标准的&nbsp;C&nbsp;语法。这一选项将禁止&nbsp;GNU&nbsp;C&nbsp;的某些特色,&nbsp;<BR>例如&nbsp;asm&nbsp;或&nbsp;typeof&nbsp;关键词。&nbsp;<BR>-c&nbsp;<BR>只编译并生成目标文件。&nbsp;<BR>-DMACRO&nbsp;<BR>以字符串“1”定义&nbsp;MACRO&nbsp;宏。&nbsp;<BR>-DMACRO=DEFN&nbsp;<BR>以字符串“DEFN”定义&nbsp;MACRO&nbsp;宏。&nbsp;<BR>-E&nbsp;<BR>只运行&nbsp;C&nbsp;预编译器。&nbsp;<BR>-g&nbsp;<BR>生成调试信息。GNU&nbsp;调试器可利用该信息。&nbsp;<BR>-IDIRECTORY&nbsp;<BR>指定额外的头文件搜索路径DIRECTORY。&nbsp;<BR>-LDIRECTORY&nbsp;<BR>指定额外的函数库搜索路径DIRECTORY。&nbsp;<BR>-lLIBRARY&nbsp;<BR>连接时搜索指定的函数库LIBRARY。&nbsp;<BR>-m486&nbsp;<BR>针对&nbsp;486&nbsp;进行代码优化。&nbsp;<BR>-o&nbsp;FILE&nbsp;<BR>生成指定的输出文件。用在生成可执行文件时。&nbsp;<BR>-O0&nbsp;<BR>不进行优化处理。&nbsp;<BR>-O&nbsp;或&nbsp;-O1&nbsp;<BR>优化生成代码。&nbsp;<BR>-O2&nbsp;<BR>进一步优化。&nbsp;<BR>-O3&nbsp;<BR>比&nbsp;-O2&nbsp;更进一步优化,包括&nbsp;inline&nbsp;函数。&nbsp;<BR>-shared&nbsp;<BR>生成共享目标文件。通常用在建立共享库时。&nbsp;<BR>-static&nbsp;<BR>禁止使用共享连接。&nbsp;<BR>-UMACRO&nbsp;<BR>取消对&nbsp;MACRO&nbsp;宏的定义。&nbsp;<BR>-w&nbsp;<BR>不生成任何警告信息。&nbsp;<BR>-Wall&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -