锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 浣犳効鎰忓涔?fàn)鏂扮殑缂柦E嬭璦鍚楋紵浣犳効鎰忕疆韜簬涓涓叏鏂扮殑搴旂敤寮鍙戜笘鐣岄噷鍚楋紵閭e氨璧跺揩閫夋嫨涓闂ㄧ紪紼嬭璦寮濮嬪涔?fàn)鍚уQ佷篃璁稿湪鍑犲勾鍚庯紝浣犲氨鑳戒緷闈犲涔?fàn)鐨効U瘡鐙珛寮鍙戝嚭搴旂敤紼嬪簭銆備絾鍦ㄦ涔嬪墠錛屼綘瑕佸厛鍋氳凍浜嬪墠鍑嗗銆?/p> 鍦ㄥ濡傜墰姣涚殑緙栫▼璇█涓栫晫涓紝閫夋嫨璇█涔熸槸涓闂ㄥ緢閲嶈鐨勫姛璇俱傚浣曞湪澶ч噺鐨勮璦涓夋嫨鍛紵榪欓噷灝嗕負(fù)浣犳彁渚涗竴涓疄鐢ㄦ寚鍗椼?/p> 鎴戣姳璐逛竷鍛ㄧ殑鏃墮棿璇諱簡涓冪緙栫▼璇█鍚庡仛鍑轟簡榪欎釜嫻佺▼鍥捐〃銆傛垜鍙戠幇鍦ㄩ夋嫨緙栫▼璇█鐨勭粨鏋滀腑錛屾湁涓閮ㄥ垎鏄垱涓氱殑寮鍙戣咃紝浠栦滑涓轟簡鍒涗笟鑰屽皾璇曞涔?fàn)鏂扮殑璇a鏀句笅鍘熸潵鐨勮璦銆傛墍浠ワ紝榪欎篃鏄綘鐨勬満浼?xì)锛岃刀蹇夋嫨鍜屽涔?fàn)鍚уQ?/p> 鍘熸枃閾炬帴錛?a style="color: #015fb6; text-decoration: none; ">streamhead.com
]]>
瑕佷嬌鐢╝utomake宸ュ叿鍖呭緩绔嬩竴涓氦鍙夌紪璇戠殑鍏變韓搴撶殑Makefile
榪欓噷鐢ㄧ殑autoconf鏄?.67鐗堟湰錛屽湪debian涓嬪疄鐜?
濡傛灉鐗堟湰浣庯紝鍙互鐢╝pt-get install automake鏉ヨ鏈鏂扮殑鐗堟湰錛岃繕闇瑕乴ibtool,涔熼渶瑕佺敤apt-get install鏉ュ畨瑁呫?/p>
榪欓噷寤虹珛涓涓畝鍗曠殑鍑芥暟搴撴潵浠嬬粛錛?/p>
寤虹珛鐩綍rx,鍙?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.cinclude_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