C±àÒë»ù´¡
int main(int argc,char *argv[])
argc(argument count):²ÎÊýµÄ¸öÊý£»
argv(argument value):²ÎÊýÖµ
argv[0] :ÎļþÃû
argv[1]£ºµÚÒ»¸ö²ÎÊý£¬argv[2];µÚ¶þ¸ö²ÎÊý£¬ÒÔ´ËÀàÍÆ¡£
±àÒëC
1 µ¥Ô´³ÌÐòµ½¿ÉÖ´ÐгÌÐò
±àÒë Á¬½Ó
Ô´Îļþ(.c)--------->Ä¿±êÎļþ(.o)------->¿ÉÖ´ÐÐÎļþ
hello.c -c howdy ./howdy
gcc -o:Ö¸¶¨±àÒë³ÌÐòÊä³öµÄ¿ÉÖ´ÐгÌÐòÃû
-c:ָʾGCCÈ¥±àÒëÔ´´úÂ룬²»ÔÙÓ²ÅÌÉÏÁôÏÂÄ¿±êÎļþ£¬Ìø¹ýµÚ¶þ²½
2 ¶àÔ´Îļþµ½¿ÉÖ´ÐÐÎļþ
gcc -c src1.c src2.c ...
½«n¸öÔ´Îļþ´´½¨¸÷×ÔµÄÄ¿±êÎļþ
gcc scr1.c scr2.c ... -o scr
½«N¸ö³ÌÐò±àÒë³ÉÒ»¸öÄ¿±êÎļþ£¬²¢½«ËûÃÇÁ¬½Óµ½¿ÉÖ´ÐгÌÐòsrc
3 Ô¤´¦Àí
gcc -E:ָʾ±àÒë³ÌÐòÖ»½øÐÐÔ¤´¦Àí²Ù×÷
gcc -E hello.c -o hello.i Ô¤´¦ÀíºóµÄ´úÂë·ÅÔÚ²»ÐèÒªÔ¤´¦ÀíµÄ.i ÎļþÖÐ
4 Éú³É»ã±àÓïÑÔ
gcc -S :ָʵ±àÒëÆ÷Éú³É»ã±à´úÂë
5 ´´½¨¾²Ì¬¿â
¾²Ì¬¿âÊÇһЩ.oÎļþµÄ¼¸ºÎ£¬ËûÃÇÊÇÓɱàÒë³ÌÐò°´ÕÕͨ³£µÄ·½Ê½Éú³ÉµÄ£¬½«³ÌÐòÁ¬½Óµ½¿àÖÔµÄÄ¿±êÎļþºÍ½«³ÌÐòÁ¬½Óµ½Ä¿Â¼ÖеÄÄ¿±êÎļþÊÇÒ»ÑùµÄ£¬¾²Ì¬¿â(archive£©ÓÉar¹ÜÀíÕâЩ¾²Ì¬¿â
¹¹ÔìÒ»¸ö¿â£¬µÚÒ»²¿ÊÇÒª±àÒë¿âÖеÄÄ¿±êÄ£¿é¡£
$gcc -c hellofirst.c hellosecond.c
½¨¿â
$ar -r libhello.a hellofirst.o hellosecond.o
±àÒë²¢Á¬½Ó³ÌÐò
$gcc twohellos.c libhello.a -o twohellos
Ö´ÐÐ
$./twohellos
6 ´´½¨¹²Ïí¿â£¨.so£©
¹²Ïí¿âÊÇÄ¿±êÎļþµÄ¼¸ºÎ£¬¶ÔÏóÄ£¿éµÄÿ¸öµØÖ·£¨±äÁ¿Ó¦Óúͺ¯Êýµ÷Óã©¶¼ÊÇÏà¶ÔµØÖ·£¬²»ÊǾø¶ÔµØÖ·¡£ÔÊÐíÔÚÔËÐгÌÐòµÄʱºò£¬¶¯Ì¬¼ÓÔÚºÍÖ´Ðй²ÏíÄ£¿é
1 ±àÒë¿âÖеĶÔÏóÄ£¿é
gcc -c -fpic shellofirst.c shellosecond.c
fpicʹµÃÊä³öµÄ¶ÔÏóÄ£¿éÊǰ´ÕÕ¿ÉÖØ¶¨Î»·½Ê½Éú³É
2 ¹¹Ôì¹²Ïí¿â
gcc -shared shellofirst.o shellosecond.o -o hello.so
3 gcc stwohellos.c hello.so -o stwohellos
µ«ÊÇÔÚÖ´ÐÐʱ³öÏÖÁË:
./stwohellos
./stwohellos: error while loading shared libraries: hello.so: cannot open shared object file: No such file or directory
Ò»¿ªÊ¼ÎÒÒÔΪȨÏÞ²»¹»£¬¿ÉÊÇ ls -l ÏÔʾ£¬È¨ÏÞÊÇ×ã¹»µÄ¡£
Õë¶ÔÕâÖÖÇé¿öÕâÑùд
gcc
Ïà¹ØÎĵµ£º
¹þ¹þ£¡ÓÐÐÒÔÚÄ³ÍøÕ¾·¢ÏÖÕâÆªÎÄÕ£¬¶Á°Õ£¬¾õµÃÂùÓеÀÀí£¬·¢À´´ó¼ÒÒ»Æð¹²ÃãÖ®
×ÜÊDZ»Í¬Ñ§ÃÇÎʵ½£¬ÈçºÎѧϰCºÍC++²Å²»Ã£È»£¬²Å²»ÊÇÂÒѧ£¬ÏëÁËһϣ¬ÕâÀï¸ø³öÒ»¸ö×ܵĻظ´¡£
¡¡¡¡Ò»¼ÒÖ®ÑÔ£¬»¶ÓÅÄש¹þ¡£
¡¡¡¡1¡¢¿ÉÒÔ¿¼ÂÇÏÈѧϰC.
¡¡¡¡´ó¶àÊýʱºò£¬ÎÒÃÇѧϰÓïÑÔµÄÄ¿µÄ£¬²»ÊÇΪÁ˳ÉΪһ¸öÓïÑÔר¼Ò£¬¶øÊÇÏ£Íû³ÉΪһ¸ö½â¾ ......
ÓÉÓÚ³ÌÐòÔËÐÐʱռÓõÄÄÚ´æ¹ý´ó£¬ËùÒÔÏë°ì·¨¸ø³ÌÐòÊÝÉí¡£
ÔÚµ÷ÊÔÖз¢ÏֽṹÌåÕ¼ÓõÄsize¾¹È»ºÍÔ¤ÏëµÄ²»Ò»Ñù£¬ÔÀ´……
¿´¿´ÏÂÃæ½²µÄ°É£¬¿Ï¶¨»á²»Í÷´Ë¿´Å¶£¡
1,±ÈÈç:
struct{
short a1;
short a2;
short a3;
}A;
struct{
long a1;
short a2;
}B;
sizeof(A)=6, sizeof(B)=8,Ϊʲô£¿
×¢£ºsizeof(sho ......
ÓÉÓÚ³ÌÐòÔËÐÐʱռÓõÄÄÚ´æ¹ý´ó£¬ËùÒÔÏë°ì·¨¸ø³ÌÐòÊÝÉí¡£
ÔÚµ÷ÊÔÖз¢ÏֽṹÌåÕ¼ÓõÄsize¾¹È»ºÍÔ¤ÏëµÄ²»Ò»Ñù£¬ÔÀ´……
¿´¿´ÏÂÃæ½²µÄ°É£¬¿Ï¶¨»á²»Í÷´Ë¿´Å¶£¡
1,±ÈÈç:
struct{
short a1;
short a2;
short a3;
}A;
struct{
long a1;
short a2;
}B;
sizeof(A)=6, sizeof(B)=8,Ϊʲô£¿
×¢£ºsizeof(sho ......
Ò»¼ÒÖ®ÑÔ£¬»¶ÓÅÄש¹þ¡£
¡¡¡¡1¡¢¿ÉÒÔ¿¼ÂÇÏÈѧϰC.
¡¡¡¡´ó¶àÊýʱºò£¬ÎÒÃÇѧϰÓïÑÔµÄÄ¿µÄ£¬²»ÊÇΪÁ˳ÉΪһ¸öÓïÑÔר¼Ò£¬¶øÊÇÏ£Íû³ÉΪһ¸ö½â¾öÎÊÌâµÄר¼Ò¡£×öÒ»¸öÓÐÓõijÌÐòÔ±£¬×öÒ»¸ö׬ǮµÄ³ÌÐòÔ±¡£ÎÒÃǵļÛÖµ£¬½«ÌåÏÖÔÚ¿Í»§¼ÛÖµÉÏ£¬¶ø²»ÊÇÓïÑÔдµÃºÃ²»ºÃ¿´¡£
¡¡¡¡C++ÊÇCµÄÒ»¸öÃæÏò¶ÔÏóµÄ½âÊÍ£¬C++ΪCÀ©³äÁË´ó¹æÄ£¹¤³ÌÓ¦ ......