LinuxÖ®Makefile (¶þ)
¾Å¡¢Ä£Ê½±äÁ¿
ÔÚGNUµÄmakeÖУ¬»¹Ö§³Öģʽ±äÁ¿£¨Pattern-specific Variable£©£¬Í¨¹ýÉÏÃæµÄÄ¿±ê±äÁ¿ÖУ¬ÎÒÃÇÖªµÀ£¬±äÁ¿¿ÉÒÔ¶¨ÒåÔÚij¸öÄ¿±êÉÏ¡£Ä£Ê½±äÁ¿µÄºÃ´¦¾ÍÊÇ£¬ÎÒÃÇ¿ÉÒÔ¸ø¶¨Ò»Ö֓ģʽ”£¬¿ÉÒ԰ѱäÁ¿¶¨ÒåÔÚ·ûºÏÕâÖÖģʽµÄËùÓÐÄ¿±êÉÏ¡£
ÎÒÃÇÖªµÀ£¬makeµÄ“ģʽ”Ò»°ãÊÇÖÁÉÙº¬ÓÐÒ»¸ö“%”µÄ£¬ËùÒÔ£¬ÎÒÃÇ¿ÉÒÔÒÔÈçÏ·½Ê½¸øËùÓÐÒÔ[.o]½áβµÄÄ¿±ê¶¨ÒåÄ¿±ê±äÁ¿£º
%.o : CFLAGS = -O
ͬÑù£¬Ä£Ê½±äÁ¿µÄÓï·¨ºÍ“Ä¿±ê±äÁ¿”Ò»Ñù£º
<pattern ...>; : <variable-assignment>;
<pattern ...>; : override <variable-assignment>;
overrideͬÑùÊÇÕë¶ÔÓÚϵͳ»·¾³´«ÈëµÄ±äÁ¿£¬»òÊÇmakeÃüÁîÐÐÖ¸¶¨µÄ±äÁ¿¡£
ʹÓÃÌõ¼þÅжÏ
——————
ʹÓÃÌõ¼þÅжϣ¬¿ÉÒÔÈÃmake¸ù¾ÝÔËÐÐʱµÄ²»Í¬Çé¿öÑ¡Ôñ²»Í¬µÄÖ´ÐзÖÖ§¡£Ìõ¼þ±í´ïʽ¿ÉÒÔÊDZȽϱäÁ¿µÄÖµ£¬»òÊDZȽϱäÁ¿ºÍ³£Á¿µÄÖµ¡£
Ò»¡¢Ê¾Àý
ÏÂÃæµÄÀý×Ó£¬ÅжÏ$(CC)±äÁ¿ÊÇ·ñ“gcc”£¬Èç¹ûÊǵϰ£¬ÔòʹÓÃGNUº¯Êý±àÒëÄ¿±ê¡£
libs_for_gcc = -lgnu
normal_libs =
foo: $(objects)
ifeq ($(CC),gcc)
$(CC) -o foo $(objects) $(libs_for_gcc)
else
$(CC) -o foo $(objects) $(normal_libs)
endif
¿É¼û£¬ÔÚÉÏÃæÊ¾ÀýµÄÕâ¸ö¹æÔòÖУ¬Ä¿±ê“foo”¿ÉÒÔ¸ù¾Ý±äÁ¿“$(CC)”ÖµÀ´Ñ¡È¡²»Í¬µÄº¯Êý¿âÀ´±àÒë³ÌÐò¡£
ÎÒÃÇ¿ÉÒÔ´ÓÉÏÃæµÄʾÀýÖп´µ½Èý¸ö¹Ø¼ü×Ö£ºifeq¡¢elseºÍendif¡£ifeqµÄÒâ˼±íʾÌõ¼þÓï¾äµÄ¿ªÊ¼£¬²¢Ö¸¶¨Ò»¸öÌõ¼þ±í´ïʽ£¬±í´ïʽ°üº¬Á½¸ö²ÎÊý£¬ÒÔ¶ººÅ·Ö¸ô£¬±í´ïʽÒÔÔ²À¨ºÅÀ¨Æð¡£else±íʾÌõ¼þ±í´ïʽΪ¼ÙµÄÇé¿ö¡£endif±íʾһ¸öÌõ¼þÓï¾äµÄ½áÊø£¬ÈκÎÒ»¸öÌõ¼þ±í´ïʽ¶¼Ó¦¸ÃÒÔendif½áÊø¡£
µ±ÎÒÃǵıäÁ¿$(CC)ÖµÊÇ“gcc”ʱ£¬Ä¿±êfooµÄ¹æÔòÊÇ£º
foo: $(objects)
$(CC) -o foo $(objects) $(libs_for_gcc)
¶øµ±ÎÒÃǵıäÁ¿$(CC)Öµ²
Ïà¹ØÎĵµ£º
linuxÇý¶¯ ×ÔÐýËøµÄÔËÓÃ
//hello.c
#define __NO_VERSION__
#include <linux/module.h>
#include <linux/config.h>
#include <linux/version.h>
#include <asm/uaccess.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#inc ......
ÏÖÔÚʹÓÃlinuxµÄÅóÓÑÔ½À´Ô½¶àÁË£¬ÔÚlinuxÏÂ×ö¿ª·¢Ê×ÏȾÍÊÇÐèÒªÅäÖû·¾³±äÁ¿£¬ÏÂÃæÒÔÅäÖÃjava»·¾³±äÁ¿ÎªÀý½éÉÜÈýÖÖÅäÖû·¾³±äÁ¿µÄ·½·¨¡£
1.ÐÞ¸Ä/etc/profileÎļþ
Èç¹ûÄãµÄ¼ÆËã»ú½ö½ö×÷Ϊ¿ª·¢Ê¹ÓÃÊ±ÍÆ¼öʹÓÃÕâÖÖ·½·¨£¬ÒòΪËùÓÐÓû§µÄshell¶¼ÓÐȨʹÓÃÕâЩ»·¾³±äÁ¿£¬¿ÉÄÜ»á¸øÏµÍ³´øÀ´°²È«ÐÔÎÊÌâ¡£
......
1¡¢ ÈçºÎÔÚLinuxϵͳÏÂÌí¼ÓÒ»¸öÕÊ»§£ºÓû§ÃûΪstd02£¬ÃÜÂëΪpwd02?
£º#useradd std02
#passwd std02
³öÏÖÌáʾÊäÈë¿ÚÁîpwd02£¬Ôٴΰ´ÌáʾÊäÈëpwd02
Ò²¿ÉÒÔ:
#useradd -n std02 -p pwd02
2¡¢ н¨Ò»¸ö×ÓĿ¼/home/public£¬ÈÃËü±»ËùÓеÄÓû§¹²Ïí£¬¶øÇÒÓµÓÐËùÓÐȨÏÞ£¬µ«²»Äܱ»·ÇÊôÖ÷ɾ³ý£¿
£º#mkdir /home/public
#chm ......
QTÊÇĿǰÔÚLinux²Ù×÷ϵͳƽ̨ÏÂÓ¦ÓÃ×î¶àµÄͼÐÎÓû§½çÃæµÄµ×²ã¿â£¬ÓÉÆäÅÉÉú³öµÄQT/Embedded´óÁ¿ÓÃÓÚǶÈëʽϵͳ¿ª·¢ºÍÑÐÖÆÖС£Êµ¼ÊÉÏ£¬QT/EmbeddedÌṩ¸øÓû§µÄ·ÇASCIIÂëµÄ×Ö¿âÒ»°ã±È½ÏÉÙ£¬ÔÚÎÒÃÇ¿ª·¢¹ý³ÌÖÐÓõÄǶÈëʽLinuxϵͳÖÐÖÐÎĺÍÈÕÎĵÄ×Ö¿â¶¼Ö»ÓÐÒ»¸ö(²»Ë㲻ͬµÄÐýת½Ç)£¬ÆäÖл¹´æÔÚ×ÖÌå´óС²»Ò»ÑùµÄÎÊÌ⣬Òò´ËÔÚʵ¼Ê¿ ......
ÅäÖãº
ͨ¹ýÎļþÃû²éÕÒ·¨£º
Õâ¸ö·½·¨ËµÆðÀ´¾ÍºÍÔÚWINDOWSϲéÕÒÎļþÒ»ÑùÈÝÒ×Àí½âÁË¡£Èç¹ûÄã°ÑÕâ¸öÎļþ·ÅÔÚµ¥¸öµÄÎļþ¼Ð
ÀïÃæ£¬Ö»ÒªÊ¹Óó£¼ûµÄ“ls"ÃüÁî¾ÍÄÜ·½±ãµÄ²éÕÒ³öÀ´£¬ÄÇôʹÓÓfind”ÃüÁîÀ´²éÕÒËü¾Í²»Äܸø
ÄãÁôÏÂÉî¿ÌµÄÓ¡Ï󣬱Ͼ¹“find”ÃüÁîµÄÇ¿´ó¹¦Äܲ»Ö¹Õâ¸ö¡£Èç¹ûÖªµÀÁËij¸ö ......