LinuxÉϵÄC/C++±àÒëÆ÷gcc/egcsÏê½â

×÷Õß: ºÎ¸ç 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 Éú³ÉËùÓо¯¸æÐÅÏ¢¡£

Ïà¹Ø×ÊѶ