锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美精品一区二区三区在线看午夜,亚洲欧洲日产国产综合网,久久婷婷avhttp://www.shnenglu.com/lk624424108/category/18372.htmlzh-cnSat, 24 Dec 2011 01:38:36 GMTSat, 24 Dec 2011 01:38:36 GMT60Makefile Libtool Automakehttp://www.shnenglu.com/lk624424108/articles/162427.htmllikunlikunMon, 19 Dec 2011 14:47:00 GMThttp://www.shnenglu.com/lk624424108/articles/162427.htmlhttp://www.shnenglu.com/lk624424108/comments/162427.htmlhttp://www.shnenglu.com/lk624424108/articles/162427.html#Feedback0http://www.shnenglu.com/lk624424108/comments/commentRss/162427.htmlhttp://www.shnenglu.com/lk624424108/services/trackbacks/162427.html

鐢╝utomake寤虹珛鍏變韓搴?鍔ㄦ侀摼鎺ュ簱)Makefile

瑕佷嬌鐢╝utomake宸ュ叿鍖呭緩绔嬩竴涓氦鍙夌紪璇戠殑鍏變韓搴撶殑Makefile

榪欓噷鐢ㄧ殑autoconf鏄?.67鐗堟湰錛屽湪debian涓嬪疄鐜?

濡傛灉鐗堟湰浣庯紝鍙互鐢╝pt-get install automake鏉ヨ鏈鏂扮殑鐗堟湰錛岃繕闇瑕乴ibtool,涔熼渶瑕佺敤apt-get install鏉ュ畨瑁呫?/p>

榪欓噷寤虹珛涓涓畝鍗曠殑鍑芥暟搴撴潵浠嬬粛錛?/p>

寤虹珛鐩綍rx,鍙婃簮鐮佺洰褰晄rc:

$mkdir rx
$mkdir rx/src

鍦╮x/src涓嬬紪杈憆x.c,rx.h涓や釜婧愭枃浠?

mybdebian:/home/myb/php/rx/src# cat rx.h
#ifndef __RX_H_
#define __RX_H_
int fun
();
#endif
mybdebian:
/home/myb/php/rx/src# cat rx.c
#include "rx.h"
int fun
()
{
return 1234;
}

鍦╮x鐩綍鍜宺x/src鐩綍涓嬪垎鍒緩绔婱akefile.am鏂囦歡

rx鐩綍涓嬬殑Makefile.am涓洪《灞侻akefile.am鏂囦歡錛屽彧瑕佸寘鍚叾瀛樻斁婧愮爜鐨勫瓙鐩綍鍗沖彲錛屽唴瀹瑰涓嬶細

AUTOMAKE_OPTIONS=foreign
SUBDIRS
=src

rx/src鐩綍涓嬬殑Makefile.am鍐呭濡備笅錛?/p>

AUTOMAKE_OPTIONS=foreign
lib_LTLIBRARIES
=librx.la
librx_la_SOURCES
=rx.c
include_HEADERS=rx.h

鍏朵腑lib_LTLIBRARIES=鍚庨潰鐨?#8220;librx.la”涓鴻鐢熸垚鐨勫簱鏂囦歡鍚?蹇呴』鍐欐垚.la錛屼笉鑳芥槸.so錛屽疄闄呬細鐢熸垚librx.so鏂囦歡銆?/p>

涓嬮潰鐨刲ibrx_la鏄痩ibrx.la鎶?#8220;.”鎹㈡垚涓嬪垝綰?#8220;_”鍚庨潰鍔犱笂“_SOURCES=”錛岀瓑鍙蜂互鍚庝負婧愭枃浠跺悕縐幫紝澶氫簬涓涓椂鐢ㄧ┖鏍奸殧寮銆?/p>

include_HEADERS=鍚庨潰鐨勪負澶存枃浠訛紝鏄緵鍏跺畠紼嬪簭鍖呭惈鐢ㄧ殑錛宮ake install鏃朵細澶嶅埗鍒板畨瑁呯洰褰曠殑include 鐩綍涓?/p>

鍥炲埌涓婂眰鐩綍錛屼嬌鐢╝utoscan鎵弿婧愮爜鐩綍:

$autoscan
$ls
autoscan.log configure.scan Makefile.am src

鎶奵onfigure.scan鏀瑰悕鎴愪負configure.ac

$mv configure.scan configure.ac
AC_OUTPUT([Makefile
src
/Makefile])

緙栬瘧榪欎釜鏂囦歡:

$vim configure.ac
# -*- Autoconf -*-
#
Process this file with autoconf to produce a configure script.

AC_PREREQ([
2.67])
AC_INIT([FULL
-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AC_CONFIG_SRCDIR([src
/rx.c])
AC_CONFIG_HEADERS([config.h])

# Checks for programs.
AC_PROG_CC

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_CONFIG_FILES([Makefile
src
/Makefile])
AC_OUTPUT

淇敼AC_INIT涓鍙ワ紝鍗蟲妸鍖呯殑鍏ㄥ悕銆佺増鏈彿鍙夿UG鎶ュ憡email鍦板潃娣諱笂錛屽錛?/p>

AC_INIT(rx2dlib,0.01,resound@163.com)

鍦ㄥ畠鍚庨潰鍔犱竴鍙?

AM_INIT_AUTOMAKE

榪欏彞璇濇槸蹇呴』鐨勩?/p>

鐢變簬榪欎釜鑴氭湰鏄敤浜庣敓鎴愬叡浜簱鐨勶紝鎵浠ヨ鍔犱竴鍙C_PROG_LIBTOOL鍦ˋC_PROG_CC鐨勪笅涓琛岋細

# Checks for programs.
AC_PROG_CC
AC_PROG_LIBTOOL

淇敼鍚庨潰鐨勯偅涓狝C_CONFIG_FILES璇彞錛屾敼鎴怉C_OUTPUT,騫舵妸鍚庨潰鐨勪竴鏉C_OUTPUT鍘繪帀錛?/p>

AC_OUTPUT([Makefile
src
/Makefile])

榪欐牱錛宑onfigure.ac灝卞緩濂戒簡錛屼慨鏀瑰悗鐨勫唴瀹瑰涓?

# -*- Autoconf -*-
#
Process this file with autoconf to produce a configure script.

AC_PREREQ([
2.67])
AC_INIT(rx2dlib,
0.01,resound@163.com)
AM_INIT_AUTOMAKE

AC_CONFIG_SRCDIR([src
/rx.c])
AC_CONFIG_HEADERS([config.h])

# Checks for programs.
AC_PROG_CC
AC_PROG_LIBTOOL

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_OUTPUT([Makefile
src
/Makefile])

鐒跺悗鎸夐『搴忔墽琛?

$aclocal
$autoconf
$autoheader
$libtoolize --automake
$automake –-add-missing
configure
.ac:13: installing `./config.guess'
configure
.ac:13: installing `./config.sub'
configure
.ac:6: installing `./install-sh'
configure
.ac:6: installing `./missing'
src
/Makefile.am: installing `./depcomp'

榪欐椂configure鑴氭湰宸茬粡鐢熸垚浜嗐?/p>

鍙互鐢ㄥ畠鏉ラ厤緗敓鎴怣akefile浜嗐?/p>

濡傛垜浠鐢熸垚浜ゅ弶緙栬瘧緇橝RM CPU浣跨敤鐨勫叡浜簱,榪欓噷鍋囪鎴戜滑瑕佷嬌鐢ㄧ殑緙栬瘧鍣ㄤ負arm-none-linux-gnueabi-gcc錛屽茍涓旀垜浠渶緇堝湪ARM鏉夸笂鎵ц鏃訛紝瑕佹妸搴撳畨瑁呭埌鐩爣鏉跨殑/usr/local/armrx2d鐩綍涓幓銆傚彲浠ヨ繖鏍烽厤緗?

$./configure --host=arm-none-linux-gnueabi --prefix=/usr/local/armrx2d

$make


Make瀹屾垚鍚庡彲浠ュ埌src鐩綍涓嬮潰鐨勪竴涓殣钘忕洰褰?libs鐩綍涓湅鍒扮敓鎴愮殑搴撴枃浠訛細

mybdebian:/home/myb/php/rx/src/.libs# ls -l
鎬昏
20
-rw-r--r--
1 root root 2368 04-19 22:48 librx.a
lrwxrwxrwx
1 root root 11 04-19 22:48 librx.la -> ../librx.la
-rw-r--r--
1 root root 930 04-19 22:48 librx.lai
lrwxrwxrwx
1 root root 14 04-19 22:48 librx.so -> librx.so.0.0.0
lrwxrwxrwx
1 root root 14 04-19 22:48 librx.so.0 -> librx.so.0.0.0
-rwxr-xr-x
1 root root 5422 04-19 22:48 librx.so.0.0.0
-rw-r--r--
1 root root 2228 04-19 22:48 rx.o

鎴戜滑鍐嶅洖鍒伴《灞傜洰褰曪紝鎵цmake install鍙互鑷姩瀹夎鐢熸垚鐨勫簱鍒?usr/local/armrx2d/lib鐩綍涓嬨?/p>

鑻ヤ嬌鐢╝utomake鏃跺嚭鐜頒笅闈㈤敊璇俊鎭?/p>

required file `./ltmain.sh' not found

鏄洜涓簂ibtool鏈厤緗細

瑙e喅鍔炴硶錛?/p>

$libtoolize --automake --debug --copy –force

鎴栵細

$libtoolize --automake

#
#
# 鍒╃敤libtool鑷姩鐢熸垚鍔ㄦ佸簱
#
1. autoscan鍛戒護鍦ㄥ綋鍓嶇洰褰曠敓鎴恈onfigure.scan鏂囦歡, 鍐呭涓?
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.57)
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
AC_CONFIG_SRCDIR([src/bot.h])
AC_CONFIG_HEADER([config.h])
# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
# Checks for libraries.
# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([limits.h malloc.h stdlib.h string.h unistd.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_CONST
AC_C_INLINE
# Checks for library functions.
AC_FUNC_MALLOC
AC_FUNC_REALLOC
AC_CHECK_FUNCS([memset strcasecmp strchr strdup])
AC_OUTPUT
灝嗗叾璇ュ悕涓篶onfigure.ac 鐒跺悗淇敼:
configure.ac 鏂囦歡鏄?autoconf 鐨勮緭鍏ユ枃浠訛紝緇忚繃 autoconf 澶勭悊錛屽睍寮閲岄潰鐨?m4瀹忥紝
杈撳嚭鐨勬槸 configure 鑴氭湰銆?/span>
絎?4 琛屽0鏄庢湰鏂囦歡瑕佹眰鐨?autoconf 鐗堟湰錛屽洜涓烘湰渚嬩嬌鐢ㄤ簡鏂扮増鏈?2.57錛屾墍浠ュ湪姝ゆ敞鏄庛?/span>
絎?5 琛?AC_INIT 瀹忕敤鏉ュ畾涔夎蔣浠剁殑鍚嶇О鍜岀増鏈瓑淇℃伅
AC_INIT([test], 1.0, [email]linhanzu@gmail.com[/email])
澧炲姞鐗堟湰淇℃伅(涓虹敓鎴恖ib搴撳仛鍑嗗)
lt_major=1
lt_age=1
lt_revision=12
dist_version=0.1.12
AM_INIT_AUTOMAKE(test, $dist_version) //鑷姩鐢熸垚Makefile鏂囦歡
澧炲姞瀹? 鎵撳紑鍏變韓搴?/span>
AC_PROG_LIBTOOL
# Check for dl  
DL_PRESENT=""
AC_CHECK_LIB( dl, dlopen, DL_PRESENT="yes",, $DL_LIBS -ldl )
if test "x$DL_PRESENT" = "xyes"; then
AC_DEFINE(HAVE_LIBDL, 1, [Define if DL lib is present])
DL_LIBS="-ldl"
AC_SUBST(DL_LIBS)
fi
# Check for libm
M_PRESENT=""
AC_CHECK_LIB( m, sin, M_PRESENT="yes",, $M_LIBS -lm )
if test "x$M_PRESENT" = "xyes"; then
AC_DEFINE(HAVE_LIBM, 1, [Define if libm is present])
M_LIBS="-lm"
AC_SUBST(M_LIBS)
fi
澧炲姞渚濊禆搴擄紝榪欓噷灝變粎浠呭垪涓句簡pthread搴擄紝鐢熸垚鐨凪akefile浼氳嚜鍔ㄥ姞涓?pthread
# Check for pthread
PTHREAD_PRESENT=""
AC_CHECK_LIB( pthread, pthread_create, PTHREAD_PRESENT="yes",, $PTHREAD_LIBS
-lpthread )
if test "x$PTHREAD_PRESENT" = "xyes"; then
AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if libpthread is present])
PTHREAD_LIBS="-lpthread"
AC_SUBST(PTHREAD_LIBS)
fi
瑕佺敓鎴愰」鐩伐紼嬬洰褰曞拰鍏跺畠鐩綍涓嬬殑Makefile 鏂囦歡, 蹇呴渶鍔犲叆
AM_CONFIG_FILES鐨勫畯:
渚嬪: AC_CONFIG_FILES([Makefile
                     src/Makefile
                     data/Makefile
                     docs/Makefile])
淇敼瀹屽悗Makefile.ac濡備笅:
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.57)
AC_INIT([test],[1.0],[[email]arne_caspari@users.sourceforge.net[/email]])
AM_CONFIG_HEADER(config.h)
lt_major=1
lt_age=1
lt_revision=12
dist_version=0.1.12
AM_INIT_AUTOMAKE(test, $dist_version)
AC_SUBST(lt_major)
AC_SUBST(lt_revision)
AC_SUBST(lt_age)
# Checks for programs.
#AC_PROG_CC
#AC_PROG_INSTALL
#AC_PROG_LN_S
#AC_PROG_LIBTOOL
AM_PROG_LIBTOOL
# Checks for libraries.
pkg_modules="gtk+-2.0 >= 2.0.0"
PKG_CHECK_MODULES(GTK_PACKAGE, [$pkg_modules], HAVE_GTK2="yes", HAVE_GTK2="no" )
AC_SUBST(GTK_PACKAGE_CFLAGS)
AC_SUBST(GTK_PACKAGE_LIBS)
# Check for dl
DL_PRESENT=""
AC_CHECK_LIB( dl, dlopen, DL_PRESENT="yes",, $DL_LIBS -ldl )
if test "x$DL_PRESENT" = "xyes"; then
AC_DEFINE(HAVE_LIBDL, 1, [Define if DL lib is present])
DL_LIBS="-ldl"
AC_SUBST(DL_LIBS)
fi
# Check for libm
M_PRESENT=""
AC_CHECK_LIB( m, sin, M_PRESENT="yes",, $M_LIBS -lm )
if test "x$M_PRESENT" = "xyes"; then
AC_DEFINE(HAVE_LIBM, 1, [Define if libm is present])
M_LIBS="-lm"
AC_SUBST(M_LIBS)
fi
# Check for pthread 
PTHREAD_PRESENT=""
AC_CHECK_LIB( pthread, pthread_create, PTHREAD_PRESENT="yes",, $PTHREAD_LIBS
-lpthread )
if test "x$PTHREAD_PRESENT" = "xyes"; then
AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if libpthread is present])
PTHREAD_LIBS="-lpthread"
AC_SUBST(PTHREAD_LIBS)
fi
# Checks for header files.
#AC_HEADER_DIRENT
#AC_HEADER_STDC
#AC_CHECK_HEADERS([fcntl.h stdlib.h string.h sys/time.h unistd.h])
# Checks for typedefs, structures, and compiler characteristics.
#AC_TYPE_PID_T
#AC_TYPE_SIZE_T
#AC_HEADER_TIME
# Checks for library functions.
#AC_FUNC_CLOSEDIR_VOID
#AC_FUNC_MALLOC
#AC_CHECK_FUNCS([memset strstr])
AC_CONFIG_FILES([Makefile
             src/Makefile
             data/Makefile
             doc/Makefile])
AC_OUTPUT

2.鐢熸垚鍚勭洰褰曚笅鐨凪akefile.am鏂囦歡
./Makefile.am   //宸ョ▼鐩綍涓?/span>
  SUBDIR = src data doc
../src/Makefile.am  //婧愮爜鐩綍涓?/span>
  MAINTAINERCLEANFILES = Makefile.in
   INCLUDES = -I../include  
   CPPFLAGS=-DINSTALL_PREFIX="\"$(prefix)\""
   lib_LTLIBRARIES = libtest.la
   libtest_la_LDFLAGS = -version-info @lt_major@:@lt_revision@:@lt_age@
   libtest_la_SOURCES = \
                      test.c \
                      test_private.h \
                      check_match.c \
                      check_match.h \
                      test_helpers.c \
                      test_helpers.h \
                      debug.h
    libtest_la_LIBADD = \
                      @DL_LIBS@ \
                      @M_LIBS@

3. 鐢熸垚autogen.sh鑴氭湰, 鍐呭
#! /bin/sh
set -x
aclocal
autoheader
automake --foreign --add-missing --copy
autoconf

淇濆瓨鍚庝慨鏀規潈闄?chmod a+x autogen.sh

3.榪愯鑴氭湰./autogen.sh, 鐢熸垚configure鑴氭湰. 榪欓噷鍙兘浼氶亣鍒伴敊璇? 鍙互鏍規嵁閿欒鎻愮ず浣滅浉搴斾慨鏀?錛堟敞鎰忥細濡傛灉鎮ㄤ慨鏀逛簡Makefile.am涓殑欏癸紝閭d箞灝卞緱閲嶆柊鎵ц榪欎竴姝ワ級

4.榪愯./configure鑴氭湰.鑷姩鐢熸垚src鐩綍涓嬬殑makefile鏂囦歡

5. 鍒囨崲鍒扮洰褰晄rc, 榪愯make 鑷姩鍦ㄥ綋鍓嶇洰褰曚笅寤虹珛.libs鏂囦歡, 緙栫▼鐢熸垚鐨勫簱鏂囦歡灝變繚瀛樺湪璇ョ洰褰曚笅.
    make install 瀹夎鍦ㄩ粯璁ょ洰褰?/usr/local/lib/涓?

6.濡傛灉瑕佺敓鎴愬叾瀹冪殑瀹夎鐩綍錛孧akefile.am灝辮榪欐牱鍐?/span>
MAINTAINERCLEANFILES = Makefile.in
INCLUDES = -I../include 
lib_LTLIBRARIES = libtt.la
libdir = $(prefix)/lib/test  //榪欎釜灝辨槸瀹夎鐩綍
libtt_la_LDFLAGS = -version-info @lt_major@:@lt_revision@:@lt_age@
libtt_la_LIBADD = @PTHREAD_LIBS@
libtt_la_SOURCES = \
                tt.c \
                video.c \
                video.h

褰撶劧錛孧akefile涓殑璇硶瑙勫垯涓繕鏈夊緢澶氬畯瀹氫箟錛屾偍鍙互鍦∕akefile鐨勫畼鏂圭綉绔欐壘鍒拌鏄庛?/span>
涓嬩竴綃囧氨鎵撶畻鍐欏啓鏉′歡緙栬瘧鐨凪akefile鍐欐硶銆?/span>







 



likun 2011-12-19 22:47 鍙戣〃璇勮
]]>
鐢╣db璋冭瘯鍔ㄦ侀摼鎺ュ簱http://www.shnenglu.com/lk624424108/articles/162157.htmllikunlikunThu, 15 Dec 2011 02:56:00 GMThttp://www.shnenglu.com/lk624424108/articles/162157.htmlhttp://www.shnenglu.com/lk624424108/comments/162157.htmlhttp://www.shnenglu.com/lk624424108/articles/162157.html#Feedback0http://www.shnenglu.com/lk624424108/comments/commentRss/162157.htmlhttp://www.shnenglu.com/lk624424108/services/trackbacks/162157.html

鐢╣db璋冭瘯鍔ㄦ侀摼鎺ュ簱

    澶у閮界煡閬撳湪 Linux 鍙互鐢?gdb 鏉ヨ皟璇曞簲鐢ㄧ▼搴忥紝褰撶劧鍓嶆彁鏄敤 gcc 緙栬瘧紼嬪簭鏃惰鍔犱笂 -g 鍙傛暟銆?/p>

    鎴戣繖綃囨枃绔犻噷灝嗚璁轟竴涓嬬敤 gdb 鏉ヨ皟璇曞姩鎬侀摼鎺ュ簱鐨勯棶棰樸?/p>

    棣栧厛錛屽亣璁炬垜浠噯澶囪繖鏍風殑涓涓姩鎬侀摼鎺ュ簱錛?/p>

    寮曠敤錛?/p>

    搴撳悕縐版槸錛?ggg

    鍔ㄦ侀摼鎺ュ簱鏂囦歡鍚嶆槸錛?libggg.so

    澶存枃浠舵槸錛?get.h

    鎻愪緵榪欐牱涓や釜鍑芥暟璋冪敤鎺ュ彛錛?/strong>

     int get ();

     int set (int a);

    

    瑕佺敓鎴愯繖鏍蜂竴涓姩鎬侀摼鎺ュ簱錛屾垜浠鍏堢紪鍐欒繖鏍蜂竴涓ご鏂囦歡錛?/p>

    /************鍏充簬鏈枃妗?*******************************************

    *filename: get.h

    *********************************************************************/

    int get ();

    int set (int a);

    鐒跺悗鍑嗗榪欐牱涓涓敓鎴愬姩鎬侀摼鎺ュ簱鐨勬簮鏂囦歡錛?/p>

    /************鍏充簬鏈枃妗?*******************************************

    *filename: get.cpp

    *********************************************************************/

    #include

    #include "get.h"

    static int x=0;

    int get ()

    {

     printf ("get x=%d\n", x);

     return x;

    }

    int set (int a)

    {

     printf ("set a=%d\n", a);

     x = a;

     return x;

    }

    鐒跺悗鎴戜滑鐢?GNU 鐨?C/C++ 緙栬瘧鍣ㄦ潵鐢熸垚鍔ㄦ侀摼鎺ュ簱錛岀紪璇戝懡浠ゅ涓嬶細

    寮曠敤錛?/p>

    g++ get.cpp -shared -g -DDEBUG -o libggg.so

    榪欐牱鎴戜滑灝卞噯澶囧ソ浜嗗姩鎬侀摼鎺ュ簱浜嗭紝涓嬮潰鎴戜滑緙栧啓涓涓簲鐢ㄧ▼搴忔潵璋冪敤姝ゅ姩鎬侀摼鎺ュ簱錛屾簮浠g爜濡備笅錛?/p>

    /************鍏充簬鏈枃妗?*******************************************

    *filename: pk.cpp

    *********************************************************************/

    #include

    #include "get.h"

    int main (int argc, char** argv)

    {

     int a = 100;

     int b = get ();

     int c = set (a);

     int d = get ();

     printf ("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);

     return 0;

    }

    緙栬瘧姝ょ▼搴忕敤涓嬪垪鍛戒護錛屽鏋滃凡緇忔妸涓婇潰鐢熸垚鐨?libggg.so 鏀懼埌浜嗗簱鏂囦歡鎼滅儲璺緞鎸囧畾鐨勬枃浠剁洰褰曪紝姣斿 /lib 鎴?/usr/lib 涔嬬被鐨勶紝灝辯敤涓嬮潰榪欐潯鍛戒護錛?/p>

    寮曠敤錛?/p>

    g++ pk.cpp -o app -Wall -g -lggg

    鍚﹀垯灝辯敤涓嬮潰榪欐潯鍛戒護錛?/p>

    寮曠敤錛?/p>

    g++ pk.cpp -o app -Wall -g -lggg -L`pwd`

    涓嬮潰鎴戜滑灝卞紑濮嬭皟璇曚笂闈㈠懡浠ょ敓鎴愮殑 app 紼嬪簭鍚с傚鏋滃凡緇忔妸涓婇潰鐢熸垚鐨?libggg.so 鏀懼埌浜嗗簱鏂囦歡鎼滅儲璺緞鎸囧畾鐨勬枃浠剁洰褰曪紝姣斿 /lib 鎴?/usr/lib 涔嬬被鐨勶紝璋冭瘯灝遍『鍒╁畬鎴愶紝濡備笅錛?/p>

    寮曠敤錛?/p>

    #gdb ./app

    GNU gdb 6.4-debian

    Copyright 2005 Free Software Foundation, Inc.

    GDB is free software, covered by the GNU General Public License, and you are

    welcome to change it and/or distribute copies of it under certain conditions.

    Type "show copying" to see the conditions.

    There is absolutely no warranty for GDB. Type "show warranty" for details.

    This GDB was configured as "i486-linux-gnu"...Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".

    (gdb) b main /* 榪欐槸鍦ㄧ▼搴忕殑 main 澶勮緗柇鐐?*/

    Breakpoint 1 at 0x804853c: file pk.cpp, line 7.

    (gdb) b set /* 榪欐槸鍦ㄧ▼搴忕殑 set 澶勮緗柇鐐?*/

    Function "set" not defined.

    Make breakpoint pending on future shared library load? (y or [n]) y /* 榪欓噷蹇呴』閫夋嫨 y 璋冭瘯紼嬪簭鎵嶄細璺熻釜鍒板姩鎬侀摼鎺ュ簱鍐呴儴鍘?*/

    Breakpoint 2 (set) pending.

    (gdb) run /* 寮濮嬭繍琛屾垜浠殑紼嬪簭錛岀洿鍒伴亣瑙佹柇鐐規椂鏆傚仠 */

    Starting program: /data/example/c/app

    Breakpoint 3 at 0xb7f665f8: file get.cpp, line 11.

    Pending breakpoint "set" resolved

    Breakpoint 1, main (argc=1, argv=0xbf990504) at pk.cpp:7

    7 int a = 100;

    (gdb) n /* 緇х畫鎵ц紼嬪簭鐨勪笅涓琛屼唬鐮?*/

    8 int b = get ();

    (gdb) n /* 紼嬪簭鎵ц鍒頒簡鎴戜滑鏂偣鎵鍦ㄧ殑鍔ㄦ侀摼鎺ュ簱浜?*/

    get x=0

    9 int c = set (a);

    (gdb) n

    Breakpoint 3, set (a=100) at get.cpp:11

    11 printf ("set a=%d\n", a);

    (gdb) list /* 鏌ョ湅褰撳墠浠g爜琛屽懆鍥寸殑浠g爜錛岃瘉鏄庢垜浠凡緇忚窡韙埌鍔ㄦ侀摼鎺ュ簱鐨勬簮浠g爜閲岄潰浜?*/

    6 printf ("get x=%d\n", x);

    7 return x;

    8 }

    9 int set (int a)

    10 {

    11 printf ("set a=%d\n", a);

    12 x = a;

    13 return x;

    14 }

    (gdb) n

    set a=100

    12 x = a;

    (gdb) n

    13 return x;

    (gdb) n

    14 }

    (gdb) n

    main (argc=1, argv=0xbf990504) at pk.cpp:10

    10 int d = get ();

    (gdb) n

    get x=100

    11 printf ("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);

    (gdb) n

    a=100,b=0,c=100,d=100

    12 return 0;

    (gdb) c

    Continuing.

    Program exited normally.

    (gdb) quit /* 紼嬪簭欏哄埄鎵ц緇撴潫 */

    濡傛灉鎴戜滑娌℃湁鎶婂姩鎬侀摼鎺ュ簱鏀懼埌鎸囧畾鐩綍錛屾瘮濡?lib閲岄潰錛岃皟璇曞氨浼氬け璐ワ紝榪囩▼濡備笅錛?/p>

    寮曠敤錛?/p>

    # gdb ./app

    GNU gdb 6.4-debian

    Copyright 2005 Free Software Foundation, Inc.

    GDB is free software, covered by the GNU General Public License, and you are

    welcome to change it and/or distribute copies of it under certain conditions.

    Type "show copying" to see the conditions.

    There is absolutely no warranty for GDB. Type "show warranty" for details.

    This GDB was configured as "i486-linux-gnu"...Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".

    (gdb) b main

    Breakpoint 1 at 0x804853c: file pk.cpp, line 7.

    (gdb) b set

    Function "set" not defined.

    Make breakpoint pending on future shared library load? (y or [n]) y

    Breakpoint 2 (set) pending.

    (gdb) run /* 铏界劧璋冭瘯鎿嶄綔閮戒竴鏍鳳紝浣嗙▼搴忔墽琛屽け璐?*/

    Starting program: /data/example/c/app

    /data/example/c/app: error while loading shared libraries: libggg.so: cannot open shared object file: No such file or directory

    Program exited with code 0177.

    (gdb) quit
http://os.chinaunix.net/a2007/0830/976/000000976152.shtml



likun 2011-12-15 10:56 鍙戣〃璇勮
]]>
澶氱嚎紼媎ebughttp://www.shnenglu.com/lk624424108/articles/162152.htmllikunlikunThu, 15 Dec 2011 02:44:00 GMThttp://www.shnenglu.com/lk624424108/articles/162152.htmlhttp://www.shnenglu.com/lk624424108/comments/162152.htmlhttp://www.shnenglu.com/lk624424108/articles/162152.html#Feedback0http://www.shnenglu.com/lk624424108/comments/commentRss/162152.htmlhttp://www.shnenglu.com/lk624424108/services/trackbacks/162152.html闃呰鍏ㄦ枃

likun 2011-12-15 10:44 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            99爱精品视频| 宅男噜噜噜66一区二区| 久久一区免费| 亚洲成人中文| 99re6这里只有精品| 欧美日韩黄色大片| 亚洲一二三四久久| 久久九九全国免费精品观看| 亚洲电影中文字幕| 欧美精品日日鲁夜夜添| 亚洲性夜色噜噜噜7777| 久热精品视频在线观看一区| 亚洲国产一区二区a毛片| 欧美日本国产精品| 欧美亚洲三级| 亚洲国产日本| 亚洲欧洲99久久| 在线不卡视频| 欧美视频不卡| 久久理论片午夜琪琪电影网| 亚洲人成亚洲人成在线观看| 先锋a资源在线看亚洲| 在线观看亚洲专区| 欧美三日本三级三级在线播放| 小处雏高清一区二区三区 | 国产亚洲欧美日韩在线一区| 久久婷婷久久| 一区二区三区视频在线 | 欧美精品啪啪| 性久久久久久久久久久久| 欧美黄色一区| 先锋影院在线亚洲| 亚洲美女福利视频网站| 国产欧美高清| 欧美另类极品videosbest最新版本 | 亚洲一区二区视频| 欧美成人一品| 久久av一区二区三区| 在线观看视频一区| 国产精品午夜国产小视频| 男同欧美伦乱| 久久国产精品久久国产精品| 日韩网站在线看片你懂的| 久久综合色天天久久综合图片| 一区二区三区波多野结衣在线观看| 精东粉嫩av免费一区二区三区| 欧美日韩日本网| 麻豆国产va免费精品高清在线| 亚洲视频在线观看| 亚洲欧洲一二三| 美女精品一区| 久久精品在这里| 午夜精品久久久久影视 | 正在播放亚洲一区| 亚洲电影一级黄| 另类激情亚洲| 久久精品免费播放| 欧美一区1区三区3区公司| 一本色道久久综合亚洲精品不卡 | 9国产精品视频| 亚洲高清免费| 欧美激情在线狂野欧美精品| 久久蜜桃精品| 久久精品国产99精品国产亚洲性色 | 久久午夜精品一区二区| 欧美一区二区三区另类| 亚洲性线免费观看视频成熟| 亚洲欧洲日产国产综合网| 一区二区三区在线免费观看| 国产视频不卡| 国产亚洲欧美一区在线观看 | 国产在线一区二区三区四区| 国产精品乱码一区二区三区| 欧美性开放视频| 国产精品精品视频| 国产精品一卡二| 国产午夜亚洲精品羞羞网站 | 亚洲视屏一区| 亚洲在线免费视频| 亚洲免费在线精品一区| 亚洲一级在线| 久久av在线| 久久久五月天| 欧美国产精品久久| 欧美激情久久久久久| 欧美精品免费在线观看| 欧美日韩精品一区二区三区四区| 欧美日韩aaaaa| 欧美午夜视频网站| 国产九九精品| 伊人成人网在线看| 亚洲人成在线观看| 亚洲午夜精品久久久久久浪潮| 亚洲综合欧美| 久久婷婷av| 亚洲日本国产| 亚洲永久在线观看| 欧美制服丝袜第一页| 免费不卡欧美自拍视频| 欧美国产综合| 国产精品亚洲精品| 亚洲高清不卡一区| 亚洲无线视频| 久久综合99re88久久爱| 亚洲人成网站色ww在线| 亚洲欧美国内爽妇网| 久久久亚洲国产美女国产盗摄| 欧美黄色日本| 国产欧美日韩在线视频| 亚洲乱码国产乱码精品精98午夜 | 亚洲第一页在线| 国产精品99久久久久久久女警| 久久国产主播| 欧美日韩123| 精东粉嫩av免费一区二区三区| 日韩视频在线一区二区三区| 午夜亚洲影视| 欧美激情一区二区三区| 久久婷婷激情| 亚洲欧洲日韩在线| 午夜精品久久久久久久99水蜜桃 | 91久久极品少妇xxxxⅹ软件| 亚洲人成久久| 亚洲在线视频一区| 久久精品视频免费播放| 亚洲人成人99网站| 欧美一区二区三区久久精品茉莉花 | 亚洲免费高清| 欧美一区精品| 欧美另类视频| 国产在线欧美| 亚洲在线视频免费观看| 欧美成人激情在线| 亚洲视频福利| 久久久久免费观看| 国产精品激情| 91久久久久久久久| 性欧美video另类hd性玩具| 亚洲精品欧美精品| 欧美中文字幕久久| 欧美日韩中文字幕在线| 一区二区在线看| 亚洲自拍电影| 一二三区精品| 欧美11—12娇小xxxx| 国产亚洲欧美一区二区| 在线视频精品| 美女在线一区二区| 久久av最新网址| 国产精品久久久久婷婷| 亚洲精品久久在线| 老司机免费视频久久| 欧美中文字幕久久| 国产精品亚洲综合天堂夜夜| 亚洲精选久久| 免费观看成人www动漫视频| 99国产一区| 欧美日韩国产丝袜另类| 亚洲国产欧美日韩| 久久综合伊人77777蜜臀| 亚洲小视频在线| 久久精品国产99国产精品| 国产日韩一区二区三区在线| 亚洲一区二区成人| 91久久久精品| 欧美成人小视频| 一区二区亚洲精品| 久久久久久久久蜜桃| 亚洲在线第一页| 国产精品免费一区豆花| 99爱精品视频| 99re66热这里只有精品3直播| 欧美成人激情在线| 亚洲国产成人高清精品| 美日韩在线观看| 久久国产一区二区三区| 国产欧美日韩综合| 欧美一区二区三区日韩视频| 一区二区三区国产在线| 欧美日韩视频第一区| 午夜精品免费视频| 亚洲一区二区在| 国产精品视频一区二区三区| 午夜免费日韩视频| 亚洲欧美中文日韩v在线观看| 国产欧美二区| 久久综合九色综合欧美就去吻| 久久在线精品| 亚洲精品中文字| 亚洲乱码国产乱码精品精可以看| 欧美激情bt| 欧美一区二区在线视频| 午夜精品久久久久久久99樱桃 | 久久久久se| 久久久久国产精品人| 亚洲国产中文字幕在线观看| 亚洲精品精选| 国产精品网红福利| 蜜桃久久av一区| 欧美成人免费在线观看|