×÷Õß: ºÎ¸ç
2005-06-21 01:30:04
Ò».ÔËÐÐ gcc/egcs
¡¡¡¡Linux ÖÐ×îÖØÒªµÄÈí¼þ¿ª·¢¹¤¾ßÊÇ GCC¡£GCC ÊÇ GNU µÄ C ºÍ C++ ±àÒëÆ÷¡£Êµ¼ÊÉÏ£¬GCCÄܹ»±àÒëÈýÖÖÓïÑÔ£ºC¡¢C++ºÍObjectC£¨CÓïÑÔµÄÒ»ÖÖÃæÏò¶ÔÏóÀ©Õ¹£©¡£ÀûÓà gcc ÃüÁî¿Éͬʱ±àÒë²¢Á¬½Ó C ºÍ C++ Ô´³ÌÐò¡£
#DEMO#: hello.c
¡¡¡¡Èç¹ûÄãÓÐÁ½¸ö»òÉÙÊý¼¸¸öCÔ´Îļþ£¬Ò²¿ÉÒÔ·½±ãµØÀûÓÃGCC±àÒë¡¢Á¬½Ó²¢Éú³É¿ÉÖ´ÐÐÎļþ¡£ÀýÈ磬¼ÙÉèÄãÓÐÁ½¸öÔ´Îļþ main.c ºÍ factorial.c Á½¸öÔ´Îļþ£¬ÏÖÔÚÒª±àÒëÉú³ÉÒ»¸ö¼ÆËã½×³ËµÄ³ÌÐò¡£
¡¡¡¡Çåµ¥ factorial.c
#include
#include
int factorial (int n)
{
if (n <= 1)
return 1;
else
return factorial (n - 1) * n;
}
¡¡¡¡Çåµ¥ main.c
#include
#include
int factorial (int n);
int main (int argc, char **argv)
{
int n;
if (argc < 2) {
printf ("Usage: %s n ", argv [0]);
return -1;
}
else {
n = atoi (argv[1]);
printf ("Factorial of %d is %d. ", n, factorial (n));
}
return 0;
}
¡¡¡¡ÀûÓÃÈçϵÄÃüÁî¿É±àÒëÉú³É¿ÉÖ´ÐÐÎļþ£¬²¢Ö´ÐгÌÐò£º
$ gcc -o factorial main.c factorial.c
$ ./factorial 5
Factorial of 5 is 120.
¡¡¡¡GCC ¿ÉͬʱÓÃÀ´±àÒë C ³ÌÐòºÍ C++ ³ÌÐò¡£Ò»°ãÀ´Ëµ£¬C ±àÒëÆ÷ͨ¹ýÔ´ÎļþµÄºó׺ÃûÀ´ÅжÏÊÇ C ³ÌÐò»¹ÊÇ C++ ³ÌÐò¡£ÔÚ linux ÖУ¬C Ô´ÎļþµÄºó׺ÃûΪ .c£¬¶ø C++ Ô´ÎļþµÄºó׺ÃûΪ .C »ò .cpp¡£
¡¡¡¡µ«ÊÇ£¬gcc ÃüÁîÖ»ÄܱàÒë C++ Ô´Îļþ£¬¶ø²»ÄÜ×Ô¶¯ºÍ C++ ³ÌÐòʹÓõĿâÁ¬½Ó¡£Òò´Ë£¬Í¨³£Ê¹Óà g++ ÃüÁîÀ´Íê³É C++ ³ÌÐòµÄ±àÒëºÍÁ¬½Ó£¬¸Ã³ÌÐò»á×Ô¶¯µ÷Óà gcc ʵÏÖ±àÒë¡£
¡¡¡¡¼ÙÉèÎÒÃÇÓÐÒ»¸öÈçÏ嵀 C++ Ô´Îļþ£¨hello.C£©£º
#include
void main (void)
{
¡¡cout << "Hello, world!" << endl;
}
¡¡¡¡Ôò¿ÉÒÔÈçϵ÷Óà g++ ÃüÁî±àÒë¡¢Á¬½Ó²¢Éú³É¿ÉÖ´ÐÐÎļþ£º
$ g++ -o hello hello.C
$ ./hello
Hello, world!
¡¡¡¡¶þ.gcc/egcs µÄÖ÷ҪѡÏî
¡¡¡¡-ansi Ö»Ö§³Ö ANSI ±ê×¼µÄ C Óï·¨¡£ÕâһѡÏ½ûÖ¹ GNU C µÄÄ³Ð©ÌØÉ«£¬ÀýÈç asm »ò typeof ¹Ø¼ü´Ê¡£
¡¡¡¡-c Ö»±àÒë²¢Éú³ÉÄ¿±êÎļþ¡£
¡¡¡¡-DMACRO ÒÔ×Ö·û´®¡°1¡±¶¨Òå MACRO ºê¡£
¡¡¡¡-DMACRO=DEFN ÒÔ×Ö·û´®¡°DEFN¡±¶¨Òå MACRO ºê¡£
¡¡¡¡-E Ö»ÔËÐÐ C Ô¤±àÒëÆ÷¡£
¡¡¡¡-g Éú³Éµ÷ÊÔÐÅÏ¢¡£GNU µ÷ÊÔÆ÷¿ÉÀûÓøÃÐÅÏ¢¡£
¡¡¡¡-IDIRECTORY Ö¸¶¨¶îÍâµÄÍ·ÎļþËÑË÷·¾¶DIRECTORY¡£
¡¡¡¡-LDIRECTORY Ö¸¶¨¶îÍâµÄº¯Êý¿âËÑË÷·¾¶DIRECTORY¡£
¡¡¡¡-lLIBRARY Á¬½ÓʱËÑË÷Ö¸¶¨µÄº¯Êý¿âLIBRARY¡£
¡¡¡¡-m486 Õë¶Ô 486 ½øÐдúÂëÓÅ»¯¡£
¡¡¡¡-o FILE Éú³ÉÖ¸¶¨µÄÊä³öÎļþ¡£ÓÃÔÚÉú³É¿ÉÖ´ÐÐÎļþʱ¡£
¡¡¡¡-O0 ²»½øÐÐÓÅ»¯´¦Àí¡£
¡¡¡¡-O »ò -O1 ÓÅ»¯Éú³É´úÂë¡£
¡¡¡¡-O2 ½øÒ»²½ÓÅ»¯¡£
¡¡¡¡-O3 ±È -O2 ¸ü½øÒ»²½ÓÅ»¯£¬°üÀ¨ inline º¯Êý¡£
¡¡¡¡-shared Éú³É¹²ÏíÄ¿±êÎļþ¡£Í¨³£ÓÃÔÚ½¨Á¢¹²Ïí¿âʱ¡£
¡¡¡¡-static ½ûֹʹÓù²ÏíÁ¬½Ó¡£
¡¡¡¡-UMACRO È¡Ïû¶Ô MACRO ºêµÄ¶¨Òå¡£
¡¡¡¡-w ²»Éú³ÉÈκξ¯¸æÐÅÏ¢¡£
¡¡¡¡-Wall Éú³ÉËùÓо¯¸æÐÅÏ¢¡£