锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产亚洲欧美日韩一区二区,美女露胸一区二区三区,欧美激情第三页http://m.shnenglu.com/lk624424108/category/18372.htmlzh-cnSat, 24 Dec 2011 01:38:36 GMTSat, 24 Dec 2011 01:38:36 GMT60Makefile Libtool Automakehttp://m.shnenglu.com/lk624424108/articles/162427.htmllikunlikunMon, 19 Dec 2011 14:47:00 GMThttp://m.shnenglu.com/lk624424108/articles/162427.htmlhttp://m.shnenglu.com/lk624424108/comments/162427.htmlhttp://m.shnenglu.com/lk624424108/articles/162427.html#Feedback0http://m.shnenglu.com/lk624424108/comments/commentRss/162427.htmlhttp://m.shnenglu.com/lk624424108/services/trackbacks/162427.html

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

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

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

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

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

寤虹珛鐩綍r(shí)x,鍙?qiáng)婧愮爜鐩綍src:

$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鏂囦歡錛屽彧瑕佸寘鍚叾瀛樻斁婧愮爜鐨勫瓙鐩綍鍗沖彲錛屽唴瀹瑰涓嬶細(xì)

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錛屽疄闄呬細(xì)鐢熸垚librx.so鏂囦歡銆?/p>

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

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

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

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

鎶奵onfigure.scan鏀瑰悕鎴愪負(fù)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涓鍙ワ紝鍗蟲妸鍖呯殑鍏ㄥ悕銆佺増鏈彿鍙?qiáng)BUG鎶ュ憡email鍦板潃娣諱笂錛屽錛?/p>

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

鍦ㄥ畠鍚庨潰鍔犱竴鍙?

AM_INIT_AUTOMAKE

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

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

# 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浣跨敤鐨勫叡浜簱,榪欓噷鍋囪鎴戜滑瑕佷嬌鐢ㄧ殑緙栬瘧鍣ㄤ負(fù)arm-none-linux-gnueabi-gcc錛屽茍涓旀垜浠渶緇堝湪ARM鏉夸笂鎵ц鏃訛紝瑕佹妸搴撳畨瑁呭埌鐩爣鏉跨殑/usr/local/armrx2d鐩綍涓幓銆傚彲浠ヨ繖鏍烽厤緗?

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

$make


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

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鏈厤緗細(xì)

瑙e喅鍔炴硶錛?/p>

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

鎴栵細(xì)

$libtoolize --automake

#
#
# 鍒╃敤libtool鑷姩鐢熸垚鍔ㄦ佸簱
#
1. autoscan鍛戒護(hù)鍦ㄥ綋鍓嶇洰褰曠敓鎴恈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浼?xì)鑷姩鍔犱?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

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

3.榪愯鑴氭湰./autogen.sh, 鐢熸垚configure鑴氭湰. 榪欓噷鍙兘浼?xì)閬囧埌閿欒? 鍙互鏍規(guī)嵁閿欒鎻愮ず浣滅浉搴斾慨鏀?錛堟敞鎰忥細(xì)濡傛灉鎮(zhèn)ㄤ慨鏀逛簡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涓殑璇硶瑙勫垯涓繕鏈夊緢澶氬畯瀹氫箟錛屾?zhèn)ㄥ彲浠ュ湪Makefile鐨勫畼鏂圭綉绔欐壘鍒拌鏄庛?/span>
涓嬩竴綃囧氨鎵撶畻鍐欏啓鏉′歡緙栬瘧鐨凪akefile鍐欐硶銆?/span>







 



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

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

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

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

    棣栧厛錛屽亣璁炬垜浠噯澶囪繖鏍風(fēng)殑涓涓姩鎬侀摼鎺ュ簱錛?/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++ 緙栬瘧鍣ㄦ潵鐢熸垚鍔ㄦ侀摼鎺ュ簱錛岀紪璇戝懡浠ゅ涓嬶細(xì)

    寮曠敤錛?/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;

    }

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

    寮曠敤錛?/p>

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

    鍚﹀垯灝辯敤涓嬮潰榪欐潯鍛戒護(hù)錛?/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 璋冭瘯紼嬪簭鎵嶄細(xì)璺熻釜鍒板姩鎬侀摼鎺ュ簱鍐呴儴鍘?*/

    Breakpoint 2 (set) pending.

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

    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閲岄潰錛岃皟璇曞氨浼?xì)澶辫触锛寴q囩▼濡備笅錛?/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://m.shnenglu.com/lk624424108/articles/162152.htmllikunlikunThu, 15 Dec 2011 02:44:00 GMThttp://m.shnenglu.com/lk624424108/articles/162152.htmlhttp://m.shnenglu.com/lk624424108/comments/162152.htmlhttp://m.shnenglu.com/lk624424108/articles/162152.html#Feedback0http://m.shnenglu.com/lk624424108/comments/commentRss/162152.htmlhttp://m.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>
            久久夜色精品国产欧美乱| 亚洲全部视频| 亚洲电影毛片| 欧美成人资源| 久久9热精品视频| 欧美亚洲综合久久| 中国av一区| 精品成人久久| 亚洲精品国产精品国自产观看浪潮| 国产日韩欧美不卡| 在线观看亚洲精品视频| 激情一区二区| 9久草视频在线视频精品| 99在线精品免费视频九九视| 香蕉av777xxx色综合一区| 亚洲香蕉伊综合在人在线视看| 亚洲免费高清| 久久er99精品| 久久久久久69| 欧美一级片一区| 久久亚洲私人国产精品va媚药| 久久综合久色欧美综合狠狠| 亚洲精品一区二区三区在线观看| 亚洲精品日韩在线| 亚洲一区二区在线观看视频| 午夜精品福利视频| 欧美xxxx在线观看| 欧美日韩另类一区| 国产亚洲高清视频| 亚洲国产日韩美| 国产精品99久久久久久白浆小说 | 国产精品日韩精品欧美精品| 国产偷久久久精品专区| 国内精品视频久久| 欧美自拍偷拍午夜视频| 久久精品国产v日韩v亚洲| 麻豆freexxxx性91精品| 国产精品亚洲不卡a| 狠色狠色综合久久| 亚洲欧美日韩在线一区| 久久久精品午夜少妇| 亚洲视频在线观看| 欧美成人免费在线视频| 亚洲少妇自拍| 欧美人与性动交cc0o| 国产欧美精品在线播放| 国产日韩欧美在线| 亚洲一区精品在线| 欧美高清影院| 久久久97精品| 国产精品久久久久久久app| 亚洲免费久久| 久久综合网hezyo| 正在播放日韩| 欧美日韩亚洲综合| 亚洲国产高清一区二区三区| 久久久综合网| 亚洲无限av看| 亚洲国产91| 久久精品91| 欧美视频二区| 亚洲视频在线一区观看| 欧美成人精品激情在线观看| 久久大香伊蕉在人线观看热2| 欧美色123| a4yy欧美一区二区三区| 欧美成人a视频| 猫咪成人在线观看| 国内外成人免费激情在线视频网站| 国产精品wwwwww| 亚洲精选在线| 一本高清dvd不卡在线观看| 玖玖精品视频| 亚洲高清一区二区三区| 欧美激情精品久久久久久蜜臀| 久久精品一区二区三区中文字幕 | 亚洲欧美视频在线观看| 另类尿喷潮videofree| 久久精品女人的天堂av| 国内精品久久久久影院优| 久久久噜噜噜| 欧美与欧洲交xxxx免费观看| 黑人巨大精品欧美一区二区 | 亚洲一区二区综合| 亚洲伊人色欲综合网| 国产精品进线69影院| 亚洲视频一区在线观看| 亚洲免费影院| 国产亚洲欧美日韩一区二区| 免费欧美日韩国产三级电影| 久久久青草婷婷精品综合日韩 | 欧美激情国产日韩| 亚洲美女av黄| 亚洲深夜福利| 国产精品一区二区a| 一本色道综合亚洲| 午夜精品久久久久久久久| 国产区欧美区日韩区| 欧美国产一区二区在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产日韩在线一区| 亚洲毛片视频| 亚洲自拍高清| 狠狠久久亚洲欧美专区| 亚洲日本理论电影| 欧美成人性网| 亚洲性感美女99在线| 亚洲欧美清纯在线制服| 韩国av一区二区三区| 日韩一级免费观看| 国产在线精品二区| 夜夜嗨av一区二区三区免费区| 国产伦精品一区二区三区高清版| 欧美日本一区| 狠狠色综合色区| 亚洲黄色影片| 国产精品自拍在线| 亚洲国产精品毛片| 国产精品免费在线| 欧美电影电视剧在线观看| 久久久久99| 欧美伊久线香蕉线新在线| 久久精品国产精品亚洲综合| 亚洲一区影音先锋| 久久综合九色综合欧美就去吻| 欧美一区二区黄| 免费亚洲电影在线观看| 午夜精品理论片| 国产精品久久久久久久久免费樱桃 | 欧美电影免费观看高清| 美女国产一区| 久久久美女艺术照精彩视频福利播放| 欧美精品成人| 男人的天堂成人在线| 国产亚洲一区二区在线观看| 亚洲精品欧洲精品| 一区二区三区产品免费精品久久75 | 亚洲国产婷婷香蕉久久久久久99| 欧美视频一区二区| 亚洲黄一区二区三区| 国产热re99久久6国产精品| 在线亚洲伦理| 在线视频亚洲一区| 亚洲一区二区三区在线视频| 一本色道久久综合亚洲精品高清 | 午夜在线电影亚洲一区| 欧美精品二区三区四区免费看视频| 美女视频黄a大片欧美| 国产目拍亚洲精品99久久精品| 亚洲一区二区久久| 亚洲欧美日韩国产| 久久激情综合网| 亚洲电影免费在线观看| 在线观看一区二区视频| 麻豆精品国产91久久久久久| 久久在线免费| 亚洲激情成人网| 免费观看不卡av| 久久女同互慰一区二区三区| 亚洲第一区中文99精品| 久久久久久日产精品| 亚洲激情视频在线观看| 亚洲精品网站在线播放gif| 欧美日本精品| 9人人澡人人爽人人精品| 久久久精品2019中文字幕神马| 激情成人综合网| 久久久久久久久久看片| 久久人人97超碰国产公开结果| 欧美少妇一区二区| 欧美亚洲网站| 欧美国产国产综合| 一区二区三区精密机械公司| 欧美日韩一区二区三区高清| 午夜日韩激情| 欧美成黄导航| 午夜一级在线看亚洲| 国产综合av| 欧美日本国产在线| 午夜精品久久久久久久99樱桃| 欧美日韩精品免费观看视频完整 | 亚洲永久精品大片| 欧美人与禽猛交乱配| 亚洲性视频h| 久久久久久久国产| 日韩特黄影片| 国产午夜精品视频| 玖玖精品视频| 制服丝袜激情欧洲亚洲| 久久精品日韩欧美| 国产精品日韩| 香蕉精品999视频一区二区| 欧美视频一二三区| 欧美jizz19hd性欧美| 正在播放欧美视频| 日韩视频免费在线观看| 久久国产精品久久w女人spa| 亚洲视频 欧洲视频| 国产亚洲欧美一区在线观看| 欧美日韩一区二区三区在线|