ÎÞÂÛÊǹ¹½¨¸´ÔÓµÄÓ¦ÓóÌÐò£¬»¹ÊǽøÐеײãϵͳ¼¶µÄ¿ª·¢£¬Linux¶¼ÌṩÁËÇ¿´óµÄ±àÒëºÍÐ¶ÔØ»úÖÆ£¬Èÿª·¢ÕßÄܹ»Áé»îµØ¹ÜÀí×Ô¼ºµÄÈí¼þ»·¾³
±¾ÎĽ«ÉîÈë̽ÌÖLinux»·¾³ÏµıàÒëÓëÐ¶ÔØ¹ý³Ì£¬´Ó»ù´¡¸ÅÄʵ¼ù²Ù×÷£¬ÎªÄú³ÊÏÖÒ»Ì×Ï꾡¶ø¾ßÓÐ˵·þÁ¦µÄÖ¸ÄÏ
Ò»¡¢Linux±àÒë»ù´¡£º´ÓÔ´´úÂëµ½¿ÉÖ´ÐÐÎļþ 1.1 ±àÒëµÄ¸ÅÄî ±àÒ룬¼ò¶øÑÔÖ®£¬Êǽ«ÈËÀà¿É¶ÁµÄ¸ß¼¶±à³ÌÓïÑÔ´úÂ루ÈçC¡¢C++¡¢JavaµÈ£©×ª»»³É¼ÆËã»ú¿ÉÖ±½ÓÖ´ÐеĻúÆ÷ÂëµÄ¹ý³Ì
Õâ¸ö¹ý³Ìͨ³£ÓɱàÒëÆ÷Íê³É£¬±àÒëÆ÷ÊÇÒ»ÖÖ½«Ô´´úÂë·Òë³ÉÄ¿±ê´úÂ루»úÆ÷Â룩µÄÈí¼þ¹¤¾ß
1.2 LinuxϵıàÒëÆ÷ ÔÚLinuxϵͳÖУ¬×î³£ÓõıàÒëÆ÷Ö®Ò»ÊÇGCC£¨GNU Compiler Collection£©
GCCÖ§³Ö¶àÖÖ±à³ÌÓïÑÔ£¬ÌرðÊÇCºÍC++£¬ÊÇLinuxÄں˼°Öڶ࿪ԴÈí¼þµÄÊ×Ñ¡±àÒ빤¾ß
1.3 ±àÒëÁ÷³Ì ±àÒë¹ý³Ìͨ³£·ÖΪ¼¸¸ö½×¶Î£º - Ô¤´¦Àí£¨Preprocessing£©£º´¦Àíºê¶¨Òå¡¢Îļþ°üº¬µÈÔ¤´¦ÀíÖ¸Áî
- ±àÒ루Compilation£©£º½«Ô¤´¦ÀíºóµÄ´úÂëת»»³É»ã±à´úÂë
- »ã±à£¨Assembly£©£º½«»ã±à´úÂëת»»³ÉÄ¿±ê´úÂ루»úÆ÷ÂëµÄÒ»ÖÖÖмäÐÎʽ£©
- Á´½Ó£¨Linking£©£º½«¶à¸öÄ¿±êÎļþ¼°¿âÎļþÁ´½Ó³É×îÖյĿÉÖ´ÐÐÎļþ
1.4 ʵ¼ù²Ù×÷£º±àÒëÒ»¸ö¼òµ¥µÄC³ÌÐò
¼ÙÉèÎÒÃÇÓÐÒ»¸öÃûΪ`hello.c`µÄCÓïÑÔÔ´Îļþ£¬ÄÚÈÝÈçÏ£º
include
2. ʹÓÃGCC±àÒ룺`gcc hello.c -o hello` ÕâÀ`-ohello`Ö¸¶¨ÁËÊä³öÎļþµÄÃû³ÆÎª`hello`
3. Ö´ÐÐÉú³ÉµÄ¿ÉÖ´ÐÐÎļþ£º`./hello` ÆÁÄ»ÉÏÓ¦ÏÔʾ¡°Hello,Linux!¡±
¶þ¡¢ÉîÈëÀí½âLinuxÏµĹ¹½¨ÏµÍ³
2.1 MakefileÓë×Ô¶¯»¯¹¹½¨
¶ÔÓÚ´óÐÍÏîÄ¿£¬ÊÖ¶¯Ö´ÐбàÒëÃüÁî¼È·±ËöÓÖÈÝÒ׳ö´í MakefileÊÇÒ»¸öÎı¾Îļþ£¬°üº¬Á˱àÒëÏîÄ¿µÄ¹æÔò£¬Ê¹µÃ±àÒë¹ý³Ì¿ÉÒÔ×Ô¶¯»¯ MakefileʹÓÃmake¹¤¾ßÀ´Ö´ÐУ¬Ëü¸ù¾ÝÎļþµÄʱ¼ä´ÁºÍÒÀÀµ¹ØÏµ¾ö¶¨ÄÄЩÎļþÐèÒªÖØÐ±àÒë
2.2 CMake£º¿çƽ̨µÄ¹¹½¨ÏµÍ³
CMakeÊÇÒ»¸ö¿çƽ̨µÄ×Ô¶¯»¯¹¹½¨ÏµÍ³£¬ËüʹÓÃCMakeLists.txtÎļþ¶¨ÒåÏîÄ¿µÄ¹¹½¨¹æÔò CMakeÄܹ»Éú³É±ê×¼µÄ¹¹½¨Îļþ£¨ÈçMakefile£©£¬Ê¹µÃÏîÄ¿Äܹ»ÔÚ²»Í¬µÄ²Ù×÷ϵͳºÍ±àÒëÆ÷ÉϱàÒë
2.3 ʵ¼ù²Ù×÷£ºÊ¹ÓÃMakefile±àÒëÏîÄ¿
¼ÙÉèÎÒÃǵÄÏîÄ¿°üº¬¶à¸öÔ´Îļþ£¬ÎÒÃÇ¿ÉÒÔ´´½¨Ò»¸öMakefileÀ´¹ÜÀí±àÒë¹ý³Ì ÒÔÏÂÊÇÒ»¸ö¼òµ¥µÄMakefileʾÀý£º
Ö¸¶¨±àÒëÆ÷
CC=gcc
±àÒëÑ¡Ïî
CFLAGS=-Wall -g
Ä¿±êÎļþ
TARGET=myprogram
Ô´Îļþ
SRCS=main.c foo.c bar.c
Éú³ÉµÄÄ¿±êÎļþÁбí
OBJS=$(SRCS:.c=.o)
ĬÈÏÄ¿±ê
all:$(TARGET)
Á´½ÓÄ¿±êÎļþ
$(TARGET): $(OBJS)
$(CC)$(OBJS) -o $(TARGET)
±àÒëÔ´Îļþ
%.o: %.c
$(CC)$(CFLAGS) -c $< -o $@
ÇåÀí
clean:
trm -f$(OBJS) $(TARGET)
ÔÚÖÕ¶ËÖУ¬Ö»ÐèÔËÐÐ`make`¼´¿É±àÒëÏîÄ¿£¬`make clean`ÔòÓÃÓÚÇåÀíÉú³ÉµÄÎļþ
Èý¡¢LinuxϵÄÈí¼þÐ¶ÔØ£º±£³ÖϵͳµÄÕû½à
3.1 Ð¶ÔØµÄ¸ÅÄî
Ð¶ÔØÊÇÖ¸´ÓϵͳÖÐÒÆ³ýÒѰ²×°µÄÈí¼þ¼°ÆäÏà¹ØÎļþµÄ¹ý³Ì Óë±àÒëÏà±È£¬Ð¶ÔØÏà¶Ô¼òµ¥£¬µ«Í¬ÑùÖØÒª£¬ÒòΪËüÓÐÖúÓÚ±£³ÖϵͳµÄÕû½àºÍÐÔÄÜ
3.2 °ü¹ÜÀíÆ÷µÄ×÷ÓÃ
Linuxϵͳͨ³£Ê¹Óðü¹ÜÀíÆ÷À´¹ÜÀíÈí¼þ°üµÄ°²×°¡¢¸üкÍÐ¶ÔØ ³£¼ûµÄ°ü¹ÜÀíÆ÷°üÀ¨DebianϵµÄAPT£¨Advanced Package Tool£©¡¢Red HatϵµÄYUM/DNF£¬ÒÔ¼°Arch LinuxµÄPacmanµÈ
3.3 ʵ¼ù²Ù×÷£ºÊ¹ÓÃAPTÐ¶ÔØÈí¼þ°ü
ÔÚ»ùÓÚDebianµÄLinux·¢Ðа棨ÈçUbuntu£©ÖУ¬¿ÉÒÔʹÓÃÒÔÏÂÃüÁîÐ¶ÔØÈí¼þ°ü£º
1. ²éÕÒÒªÐ¶ÔØµÄÈí¼þ°ü£º`apt list --installed | grep ="" 3.="" ³¹µ×Ð¶ÔØÈí¼þ°ü¼°ÆäÅäÖÃÎļþ£º`sudo="" purge=""
3.4 ´ÓÔ´´úÂë±àÒë°²×°µÄÐ¶ÔØ
¶ÔÓÚ´ÓÔ´´úÂë±àÒë°²×°µÄÈí¼þ£¬Ð¶Ôعý³ÌÐèÒªÊÖ¶¯½øÐРͨ³££¬ÕâÉæ¼°µ½É¾³ý°²×°Ä¿Â¼ºÍ¿ÉÄÜ´´½¨µÄÅäÖÃÎļþ ÀýÈ磬Èç¹ûÈí¼þ±»°²×°µ½`/usr/local`Ŀ¼Ï£¬Äã¿ÉÒÔʹÓÃÒÔÏÂÃüÁîɾ³ý£º
sudo rm -rf /usr/local/
ËÄ¡¢×î¼Ñʵ¼ùÓë×¢ÒâÊÂÏî
4.1 ±£³Öϵͳ¸üÐÂ
¶¨ÆÚ¸üÐÂϵͳºÍÈí¼þ°ü£¬ÒÔÈ·±£°²È«ÐԺͼæÈÝÐÔ Ê¹Óðü¹ÜÀíÆ÷£¨Èç`sudo apt update && sudo aptupgrade`£©¿ÉÒÔÇáËÉÍê³ÉÕâÒ»ÈÎÎñ
4.2 ʹÓÃÐéÄâ»·¾³
¶ÔÓÚ¿ª·¢»·¾³£¬Ê¹ÓÃÈçPythonµÄvenv¡¢Node.jsµÄnvmµÈ¹¤¾ß´´½¨ÐéÄâ»·¾³£¬¿ÉÒÔ±ÜÃⲻͬÏîÄ¿¼äµÄÒÀÀµ³åÍ»
4.3 ±¸·ÝÖØÒªÊý¾Ý
ÔÚ½øÐдó¹æÄ£Ð¶ÔØ»òϵͳ¸üÐÂǰ£¬Îñ±Ø±¸·ÝÖØÒªÊý¾Ý£¬ÒÔ·ÀÍòÒ»
4.4 ×ñѹٷ½Îĵµ
²»Í¬Èí¼þ¿ÉÄÜÓÐÌØ¶¨µÄÐ¶ÔØ²½Öè»ò×¢ÒâÊÂÏ×ñѹٷ½Îĵµ½øÐвÙ×÷£¬¿ÉÒÔ¼õÉÙ³ö´íµÄ¿ÉÄÜÐÔ
½áÓï
Linux»·¾³ÏµıàÒëÓëÐ¶ÔØÊÇ¿ª·¢ÕßÈÕ³£¹¤×÷Öв»¿É»òȱµÄ¼¼ÄÜ Í¨¹ýÀí½â±àÒëµÄ»ù±¾ÔÀí¡¢ÕÆÎÕ×Ô¶¯»¯¹¹½¨¹¤¾ß¡¢ÓÐЧÀûÓðü¹ÜÀíÆ÷£¬ÒÔ¼°×ñÑ×î¼Ñʵ¼ù£¬ÎÒÃÇÄܹ»¸ü¼Ó