GCC ±àÒëc³ÌÐòµÄ·½·¨¼°¹ý³Ì½âÎö
GCC ±àÒëc³ÌÐòµÄ·½·¨¼°¹ý³Ì½âÎö
Justin.zp.Yang 2010.04.10
Ŀǰ Linux ÏÂ×î³£ÓÃµÄ C ÓïÑÔ±àÒëÆ÷ÊÇ GCC £¨ GNU Compiler Collection £©£¬ËüÊÇ GNU ÏîÄ¿ÖзûºÏ ANSI C ±ê×¼µÄ±àÒëϵͳ£¬Äܹ»±àÒëÓà C ¡¢ C++ ºÍ Object C µÈÓïÑÔ±àдµÄ³ÌÐò¡£ GCC ²»½ö¹¦Äܷdz£Ç¿´ó£¬½á¹¹Ò²Òì³£Áé»î¡£×îÖµµÃ³ÆµÀµÄÒ»µã¾ÍÊÇËü¿ÉÒÔͨ¹ý²»Í¬µÄǰ¶ËÄ£¿éÀ´Ö§³Ö¸÷ÖÖÓïÑÔ£¬ÈçJava ¡¢ Fortran ¡¢ Pascal ¡¢ Modula-3 ºÍ Ada µÈ¡£¿ª·Å¡¢×ÔÓɺÍÁé»îÊÇ Linux µÄ÷ÈÁ¦ËùÔÚ£¬¶øÕâÒ»µãÔÚ GCC ÉϵÄÌåÏÖ¾ÍÊdzÌÐòԱͨ¹ýËüÄܹ»¸üºÃµØ¿ØÖÆÕû¸ö±àÒë¹ý³Ì¡£ÔÚʹÓà GCC ±àÒë³ÌÐòʱ£¬±àÒë¹ý³Ì¿ÉÒÔ±»Ï¸·ÖΪËĸö½×¶Î£º
Ô¤´¦Àí£¨ Pre-Processing £©
±àÒ루 Compiling £©
»ã±à£¨ Asse mbling £©
Á´½Ó£¨ Linking £©
Linux ³ÌÐòÔ±¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÒªÈà GCC ÔÚ±àÒëµÄÈκν׶νáÊø£¬ÒÔ±ã¼ì²é»òʹÓñàÒëÆ÷Ôڸý׶εÄÊä³öÐÅÏ¢£¬»òÕß¶Ô×îºóÉú³ÉµÄ¶þ½øÖÆÎļþ½øÐпØÖÆ£¬ÒÔ±ãͨ¹ý¼ÓÈ벻ͬÊýÁ¿ºÍÖÖÀàµÄµ÷ÊÔ´úÂëÀ´Îª½ñºóµÄµ÷ÊÔ×öºÃ×¼±¸¡£ºÍÆäËü³£ÓõıàÒëÆ÷Ò»Ñù£¬ GCC Ò²ÌṩÁËÁé»î¶øÇ¿´óµÄ´úÂëÓÅ»¯¹¦ÄÜ£¬ÀûÓÃËü¿ÉÒÔÉú³ÉÖ´ÐÐЧÂʸü¸ßµÄ´úÂë¡£
GCC ÌṩÁË 30 ¶àÌõ¾¯¸æÐÅÏ¢ºÍÈý¸ö¾¯¸æ¼¶±ð£¬Ê¹ÓÃËüÃÇÓÐÖúÓÚÔöÇ¿³ÌÐòµÄÎȶ¨ÐԺͿÉÒÆÖ²ÐÔ¡£´ËÍ⣬ GCC »¹¶Ô±ê×¼µÄ C ºÍ C++ ÓïÑÔ½øÐÐÁË´óÁ¿µÄÀ©Õ¹£¬Ìá¸ß³ÌÐòµÄÖ´ÐÐЧÂÊ£¬ÓÐÖúÓÚ±àÒëÆ÷½øÐдúÂëÓÅ»¯£¬Äܹ»¼õÇá±à³ÌµÄ¹¤×÷Á¿¡£
C ³ÌÐòµÄ±àÒë¹ý³ÌÖ÷Òª·ÖΪËĸö½×¶Î£ºpre-processing,compiling,assembling,linking;
³£ÓÃÎļþµÄºó׺Ãû£º
gcc Ô¤´¦Àí½×¶Î£ºÖ÷Òª¶Ô°üº¬µÄÍ·Îļþ£¨££include £©ºÍºê¶¨Ò壨££define,#ifdef ... £©½øÐд¦Àí¡£¿ÉÒÔʹÓÓgcc -E” ÈÃgcc ÔÚÔ¤´¦ÀíÖ®ºóÍ£Ö¹±àÒë¹ý³Ì£¬Éú³É *.i Îļþ¡£
[root@localhost gcc]# gcc -E hello.c -o hello.i
gcc ±àÒë½×¶Î£ºgcc Ê×ÏÈÒª¼ì²é´úÂëµÄ¹æ·¶ÐÔ£¬ÊÇ·ñÓÐÓï·¨´íÎóµÈ¡£ÒÔÈ·¶¨´úÂëʵ¼ÊÒª×öµÄ¹¤×÷£¬ÔÚ¼ì²éÎÞÎóºó£¬gcc °Ñ´úÂë·Òë³É»ã±àÓïÑÔ¡£Óû§¿ÉÒÔʹÓÃ-S Ñ¡Ïî½øÐв鿴£¬¸ÃÑ¡ÏîÖ»½ø
ÐбàÒë¶ø²»½øÐлã±à£¬Éú³É»ã±à´úÂë¡£
[root@localhost gcc]# gcc -S hello.i -o hello.s
gcc »ã±à½×¶Î£ºÉú³ÉÄ¿±ê´úÂë *.o £»ÓÐÁ½ÖÖ·½Ê½£ºÊ¹Óà gcc Ö±½Ó´ÓÔ´´úÂëÉú³ÉÄ¿±ê´úÂë gcc -c *.s -o *.o ÒÔ¼°Ê¹Óûã±àÆ÷´Ó»ã±à´úÂëÉú³ÉÄ¿±ê´úÂë as *.s -o *.o
[root@localhost gcc]# gcc -c hello.s -o hello.o
[root@localhost
Ïà¹ØÎĵµ£º
´ò¿ªÎļþ»òÕß³ÌÐò
1¡¢ShellExecute(0,"open","c:\\abc.exe","","",SW_SHOW);
2¡¢WinExec("c:\\a.exe",SW_SHOW);
3¡¢system("dir c:\\");
¹Ø±ÕÎļþ
m_hwnd = FindWindows("Notepad","a.txt-¼Çʱ¾");
SendMessage(m_hwnd,WM_SYSCOMMAND,SC_CLOSE,0);
Òþ²ØDOS´°¿Ú
#pragma comment( linker, "/subsystem:\"windows\" ......
·¢ÐÅÈË: RoachCock (·´¶¯Ñ§ÊõȨÍþ), ÐÅÇø: CPlusPlus
±ê Ìâ: extern "C" ÔĶÁ±Ê¼Ç
·¢ÐÅÕ¾: ˮľÉçÇø (Fri Mar 7 00:22:47 2008), Õ¾ÄÚ
±¾ÒÔΪºÜ¼òµ¥£¬×ÐϸÔĶÁÁËһϠC++ ±ê×¼£¬·¢ÏÖÄÚÈÝ»¹²»ÉÙ¡£×ܽáÁËһϡ£
Òªµã£º
º¯ÊýÀàÐÍ£¬º¯ÊýÃû£¬±äÁ¿Ãû¾ßÓÐÓïÑÔÁ´½ÓÐÔ£¬language linkage¡£
ÓïÑÔÁ´½ÓÐÔ¿ÉÄÜ»áÓ°Ïìµ½ ......
Ò» £¬ÔõÑùѧϰCÓïÑÔ
ºÜ¶àÈ˶ÔѧϰCÓïÑԸе½ÎÞ´ÓÏÂÊÖ£¬¾³£ÎÊÎÒͬһ¸öÎÊÌ⣺¾¿¾¹ÔõÑùѧϰCÓïÑÔ£¿ÎÒÊÇÒ»¸ö½Ìʦ£¬ÒѾ¿ª·¢Á˺ܶàÄêµÄ³ÌÐò£¬ºÍºÜ¶à¸Õ¸ÕÆð²½µÄÈËÒ»Ñù£¬Ñ§Ï°µÄµÚÒ»¸ö¼ÆËã»úÓïÑÔ¾ÍÊÇCÓïÑÔ¡£¾¹ýÕâЩÄêµÄ¿ª·¢£¬ÎÒÉîÉîµÄÌå»áµ½CÓïÑÔ¶ÔÓÚÒ»¸ö³ÌÐòÉè¼ÆÈËÔ±¶àôµÄÖØÒª£¬Èç¹û²»¶®CÓ ......
1.
printf("%.9lf\n",sum);
//Êä³öСÊýµãºó9λ²»Ê¡È¥Ä©Î²¶àÓàµÄ0
2.
printf("%.10g\n",sum);
//Êä³öСÊýµãºó9λ²»Ê¡È¥Ä©Î²¶àÓàµÄ0
3.
#include<iomanip>
cout<<setprecision(10)<<sum<<endl;
//Êä³öСÊýµãºó9λʡȥĩβ¶àÓàµÄ0
4.
#include<iomanip>
cout.pre ......