Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Libtool´´½¨ºÍʹÓÃlinux϶¯Ì¬¿â

Îļþfun.c£¬fun.h£¬hello.c£¬hello.h£¬main.c¶¯Ì¬¿âº¯Êý¶¼ÔÚfun.cºÍhello.cÀïÃæ
----------------------------
fun.c:
int add(int a, int b)
{
 return a+b;
}
fun.h:
#ifndef _FUN_H_11
#define _FUN_H_11
int add(int a, int b);
#endif
----------------------------
hello.c:
££i nclude <stdio.h>
void output(char *ss)
{
 printf("HELLO  %s\n", ss);
}
hello.h
#ifndef HELLO_H_111
#define HELLO_H_111
void output(char *ss);
#endif
----------------------------
main.c:
££i nclude <stdio.h>
££i nclude "hello.h"
££i nclude "fun.h"
void
main()
{
 output("world");
 printf("Test Value:%d\n", add(1, 2));
}
---------------------------------
ʹÓÃlibtools´´½¨ºÍʹÓð²×°¶¯Ì¬¿â²½Öè:
(1)
libtool --mode=compile gcc -g -O -c hello.c
libtool --mode=compile gcc -g -O -c fun.c
libtool --mode=compile gcc -g -O -c main.c
#Éú³É¸÷×ÔµÄoÎļþ
(2)
libtool --mode=link gcc -g -O -o libhello.la hello.lo fun.lo -rpath /usr/local/lib -lm
#Á¬½Ó³É¶¯Ì¬¿âÎļþ
(3)
libtool --mode=link gcc -g -O -o test main.o libhello.la -lm
#Á¬½ÓÉú³É¿ÉÖ´ÐÐÎļþtest
(4)
libtool --mode=install cp libhello.la /usr/local/lib/libhello.la
libtool --mode=install install -c libhello.la /usr/local/lib/libhello.la
libtool -n --mode=finish /usr/local/lib
libtool install -c test /usr/local/bin/test
#°²×°¶¯Ì¬¿â
È»ºó¾Í¿ÉÒÔÔËÐÐ/usr/local/bin/testÁË,µ±È»Â·¾¶¿ÉÒÔÈÎÒâÉèÖÃ,ÕâÊÇÊÖ¶¯¹ý³Ì,д³ÉMakefileÎļþΪ:
OBJS = fun.o hello.o
LO_OBJS = main.lo fun.lo hello.lo
PACKAGE_VERSION = 1:1:1
LIBDIR=/usr/local/lib
all : test
install : libhello.la
 
test : libhello.la main.o
 libtool --mode=link gcc -g -O -o test main.o libhello.la -lm
libhello.la : $(OBJS)
 libtool gcc -g -O -o libhello.la $(LO_OBJS) -rpath ${LIBDIR} -lm -version-info ${PACKAGE_VERSION}
main.o : main.c fun.h hello.h
 libtool --mode=compile gcc -g -O -c main.c
fun.o : fun.c fun.h
 libtool --mode=compile gcc -g -O -c fun.c
hello.o : hello.c hello.h
 libtool --mode=comp


Ïà¹ØÎĵµ£º

linuxÎļþÀàÐÍ

linuxÖУ¬Í¨¹ý
ls -al
ÏÔʾµÄÊôÐÔÖУ¬µÚÒ»¸ö¾Í±êÖ¾ÎļþÀàÐÍ¡£Í¨³£ÓÐһϼ¸ÖÖÇé¿ö£º
[ - ]£­£­£­£­ÆÕͨÎļþ
[ d]£­£­£­£­Ä¿Â¼
[ l ]£­£­£­£­Á¬½ÓÎļþ
[ b]£­£­£­£­¿éÉ豸
[ c ]£­£­£­£­×Ö·ûÉ豸
[ s ]£­£­£­£­Ì×½á×Ö
[ p ]£­£­£­£­¹ÜµÀ ......

[Pthread] Linux³ÌÐòµ÷ÊԵĻùʯ(¶þ)


3. GDBµÄʵÏÖ
GDBÊÇGNU·¢²¼µÄÒ»¸öÇ¿´óµÄ³ÌÐòµ÷ÊÔ¹¤¾ß£¬ÓÃÒÔµ÷ÊÔC/C++³ÌÐò¡£¿ÉÒÔʹ³ÌÐòÔ±ÔÚ³ÌÐòÔËÐеÄʱºò¹Û²ì³ÌÐòÔÚÄÚ´æ/¼Ä´æÆ÷ÖеÄʹÓÃÇé¿ö¡£ËüµÄʵÏÖÒ²ÊÇ»ùÓÚptraceϵͳµ÷ÓÃÀ´Íê³ÉµÄ¡£
Æä
Ô­ÀíÊÇÀûÓÃptraceϵͳµ÷Óã¬ÔÚ±»µ÷ÊÔ³ÌÐòºÍgdbÖ®¼ä½¨Á¢¸ú×Ù¹ØÏµ¡£È»ºóËùÓз¢Ë͸ø±»µ÷ÊÔ³ÌÐòµÄÐźÅ(³ýSIGKILL)¶¼»á±»gdb½Ø ......

[linux]

ʵÀý½â˵ fdisk ʹÓ÷½·¨
×÷Õߣº±±ÄÏÄϱ±
À´×Ô£ºLinuxSir.Org
ÌáÒª£ºfdisk ÊÇÒ»¿î¹¦ÄÜÇ¿´óµÄ·ÖÇø¹¤¾ß£¬Ò²ÊÇĿǰÔÚUnixÀà²Ù×÷ϵͳÖÐ×îÁ÷ÐеŤ¾ßÖ®Ò»£»·ÖÇø¹¤¾ßÀÏ×ֺţ»±¾ÆªÖ»½éÉÜÆä×î¼òµ¥µÄ·ÖÇø²Ù×÷¹¦ÄÜ£»
Ò»¡¢fdisk µÄ½éÉÜ£»
fdisk - Partition table manipulator for Linux £¬Òë³ÉÖÐÎĵÄÒâ˼ÊÇ´ÅÅÌ·ÖÇø±í²Ù×÷¹¤¾ß£»± ......

LinuxÎļþËÑË÷Ö® find / locate / whereis / which

ÒýÑÔ
find×îÇ¿´ó£¬Ê²Ã´¶¼Äܲ飬¿ÉÒÔ¸ù¾ÝÌõ¼þ²éÕÒÎļþ¡£
whichÖ»Äܲé¿ÉÖ´ÐÐÎļþºÍ±ðÃû(alias)¡£
whereisÖ»Äܲé¶þ½øÖÆÎļþ¡¢ËµÃ÷Îĵµ£¬Ô´ÎļþµÈ£¬¿ÉÒÔÕÒµ½¿ÉÖ´ÐгÌÐòºÍman page¡£
locateÊÇÔÚÊý¾Ý¿âÀï²éÕÒ£¬Êý¾Ý¿â´óÖÁÿÌì¸üÐÂÒ»´Î£¬µ«¸úwhereisÒ»Ñù¶¼ÊDzéÊý¾Ý¿âÀïµÄÄÚÈÝ¡£
1.find /etc -name my.so
2.locate ÊÇÓÃÀ´Í¨¹ý ......

Linux/Unix»·¾³ÏµÄMakeºÍMakefileÏê½â

ÎÞÂÛÊÇÔÚLinux»¹ÊÇÔÚUnix»·¾³ÖУ¬make¶¼ÊÇÒ»¸ö·Ç³£ÖØÒªµÄ±àÒëÃüÁî¡£²»¹ÜÊÇ×Ô¼º½øÐÐÏîÄ¿¿ª·¢»¹Êǰ²×°Ó¦ÓÃÈí¼þ£¬ÎÒÃǶ¼¾­³£ÒªÓõ½
make»òmake
install¡£ÀûÓÃmake¹¤¾ß£¬ÎÒÃÇ¿ÉÒÔ½«´óÐ͵Ŀª·¢ÏîÄ¿·Ö½â³ÉΪ¶à¸ö¸üÒ×ÓÚ¹ÜÀíµÄÄ£¿é£¬¶ÔÓÚÒ»¸ö°üÀ¨¼¸°Ù¸öÔ´ÎļþµÄÓ¦ÓóÌÐò£¬Ê¹ÓÃmakeºÍ
makefile¹¤¾ß¾Í¿ÉÒÔ¼ò½àÃ÷¿ìµØÀí˳¸÷¸öÔ´Îļþ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ