自己写个 C 程式

王朝c/c++·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

你应该不会期待在 Linux 有 GW/Qbasic 吧?? 在 Un*x 中, 系统内定的语言是 C,

不管你是喜欢还是讨厌它. 当然还有其它的语言可以用 (FORTRAN, Pascal, Lisp, Bacic

.. 但没有 Turbo Pascal ^Q^ ).

假设你懂得 C.. 假如你曾经被 Turbo C++ 或是它在 DOS 下的兄弟们宠爱过, 那这里

有两句话恐怕不啻晴天霹雳: Linux 下的 C 编译器叫作 gcc, 但, 它没有 IDE 环境,

没有线上求助系统, 没有整合式除错器,..等等. 只有一个命令列的编译器, 但强大

且有效率. 以下这个命令可以编译你已写好的 hello.c :

$ gcc hello.c

这样会产生一个 a.out 的执行档. 假如你想让 gcc 造出其它档名的执行档, 键入

$ gcc -o hola hello.c

要联结一个程式库, 你要在 gcc 後加上一个 -l<arg> 的选项. 比如说要联结 math

library

$ gcc -o mathprog mathprog.c -lm

( -l<arg> 会迫使 gcc 联结 /usr/lib/lib<arg>.a; 因此, -lm 会联结

/usr/lib/libm.a)

对小程式来说, 这是一个好方法. 但是若程式是由数个 source files 组成, 我们可能

会需要 make 这个程式. 假设我们已经写好一个语法分析程式 parser.c, 它 #include

了两个 .h : parser.h , xy.h. 现在, 有个 calc.c 需要使用到 parser.c 中的功能.

这样该怎麽办??

我们可以写一个叫作 makefile 的档案, 告诉编译器所有 source 和 object files

间的关系, 在这个例子里,

# This is makefile, used to compile calc.c

# Press the <TAB> key at appropriate positions!

calc: calc.o parser.o

<TAB>gcc -o calc calc.o parser.o -lm

# calc depends on two object files: calc.o and parser.o

calc.o: calc.c parser.h

<TAB>gcc -c calc.c

# calc.o depends on two source files

parser.o: parser.c parser.h xy.h

<TAB>gcc -c parser.c

# parser.o depends on three source files

# end of makefile.

储存, 然後键入

$ make

以便编译程式. 或者, 这个档案被存在 calc.mak 里, 那麽就必需

$ make -f calc.mak

当然, 请参阅 Man pages 以得到更多的资讯.

此外, 某些函数的用法在 man pages 可以找得到, 例如

$ man printf

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航