锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美与黑人午夜性猛交久久久 ,秋霞久久国产精品电影院,日本久久久久亚洲中字幕http://www.shnenglu.com/lauer3912/category/16487.html娌℃湁鐞嗙敱涓嶅涔?/description>zh-cnThu, 19 Apr 2012 01:15:03 GMTThu, 19 Apr 2012 01:15:03 GMT60@executable path, @load path and @rpathhttp://www.shnenglu.com/lauer3912/archive/2012/04/18/171814.htmlRTYRTYTue, 17 Apr 2012 22:14:00 GMThttp://www.shnenglu.com/lauer3912/archive/2012/04/18/171814.htmlhttp://www.shnenglu.com/lauer3912/comments/171814.htmlhttp://www.shnenglu.com/lauer3912/archive/2012/04/18/171814.html#Feedback0http://www.shnenglu.com/lauer3912/comments/commentRss/171814.htmlhttp://www.shnenglu.com/lauer3912/services/trackbacks/171814.html@executable path, @load path and @rpath
2010騫?1鏈?鏃?/span> by Wincent Colaiuta

Note: this article is actually about the @executable_path, @load_path and @rpath install paths used by the linker on Mac OS X; wiki titles can't include underscores, however, because they are ambiguous with spaces.

Absolute paths

Useful for frameworks installed in shared locations. Example:

  • Install path: /Library/Frameworks/Foo.framework/Versions/A/Foo

@executable_path

Useful for frameworks embedded inside applications, because it allows you to specify the location of the framework relative to the application's executable:

  • Install path: @executable_path/../Frameworks/Foo.framework/Versions/A/Foo
  • Application location: /Applications/Foo.app
  • Executable path: /Applications/Foo.app/Contents/MacOS
  • Framework location: /Applications/Foo.app/Contents/Frameworks/Foo.framework
  • Linker puts all this together to figure out that the framework binary can be found at: /Applications/Foo.app/Contents/MacOS/../Frameworks/Foo.framework/Versions/A/Foo

@loader_path

Available from Mac OS X 10.4 Tiger onwards; useful for frameworks embedded inside plug-ins, because it allows you to specify the location of the framework relative to the plug-in's code (remember, plug-ins may not actually know where they are going to be installed, relative to the application, so knowing @executable_path doesn't help us in this case):

  • Install path: @loader_path/../Frameworks/Foo.framework/Versions/A/Foo
  • Application location: /Applications/Foo.app
  • Plug-in location: /Library/Application Support/Foo/Plug-Ins/Bar.bundle
  • Executable path: /Applications/Foo.app/Contents/MacOS
  • Loader path: /Library/Application Support/Foo/Plug-Ins/Bar.bundle/Contents/MacOS
  • Framework location: /Library/Application Support/Foo/Plug-Ins/Bar.bundle/Contents/Frameworks/Foo.framework
  • Linker puts all this together to figure out that the framework binary can be found at: /Library/Application Support/Foo/Plug-Ins/Bar.bundle/Contents/MacOS/../Frameworks/Foo.framework/Versions/A/Foo

Note that if the "loader" is an application rather than a plug-in, the @loader_path ends up being equivalent to @executable_path.

@rpath

New in Mac OS X 10.5 Leopard is @rpath. Key points:

  • @rpath instructs the dynamic linker to search a list of paths in order to locate the framework
  • critically, this list is embedded in the loading application
  • this means that a single framework with @rpath/Foo.framework/Versions/A/Foo can be made to work in a number of different ways; that is, you are effectively no longer limited by the choice of specifying your "install path" using either @executable_path or @loader_path
  • the down side: you now have to pass additional linker flags when building the host application (eg. -rpath @executable_path/../Frameworks or /Library/Frameworks; note that specifying both will cause the dynamic linker to try looking in both locations)

Sources



RTY 2012-04-18 06:14 鍙戣〃璇勮
]]>
Configure錛孧akefile.am, Makefile.in, Makefile鏂囦歡涔嬮棿鍏崇郴http://www.shnenglu.com/lauer3912/archive/2012/04/03/169966.htmlRTYRTYTue, 03 Apr 2012 14:20:00 GMThttp://www.shnenglu.com/lauer3912/archive/2012/04/03/169966.htmlhttp://www.shnenglu.com/lauer3912/comments/169966.htmlhttp://www.shnenglu.com/lauer3912/archive/2012/04/03/169966.html#Feedback0http://www.shnenglu.com/lauer3912/comments/commentRss/169966.htmlhttp://www.shnenglu.com/lauer3912/services/trackbacks/169966.htmlConfigure錛孧akefile.am, Makefile.in, Makefile鏂囦歡涔嬮棿鍏崇郴
2009-08-12 12:14

1.autoscan (autoconf): 鎵弿婧愪唬鐮佷互鎼滃鏅氱殑鍙Щ妞嶆ч棶棰橈紝姣斿媯鏌ョ紪璇戝櫒錛屽簱錛屽ご鏂囦歡絳夛紝鐢熸垚鏂囦歡configure.scan,瀹冩槸configure.ac鐨勪竴涓洀褰€?/p>

your source files --> [autoscan*] --> [configure.scan] --> configure.ac

2.aclocal (automake):鏍規嵁宸茬粡瀹夎鐨勫畯錛岀敤鎴峰畾涔夊畯鍜宎cinclude.m4鏂囦歡涓殑瀹忓皢configure.ac鏂囦歡鎵闇瑕佺殑瀹忛泦涓畾涔夊埌鏂囦歡 aclocal.m4涓俛clocal鏄竴涓猵erl 鑴氭湰紼嬪簭錛屽畠鐨勫畾涔夋槸錛?#8220;aclocal - create aclocal.m4 by scanning configure.ac”
user input files   optional input     process          output files
================ ============== ======= ============

acinclude.m4 - - - - -.
V
.-------,
configure.ac ------------------------>|aclocal|
{user macro files} ->| |------> aclocal.m4
`-------'
3.autoheader(autoconf): 鏍規嵁configure.ac涓殑鏌愪簺瀹忥紝姣斿cpp瀹忓畾涔夛紝榪愯m4錛屽0縐癱onfig.h.in

user input files optional input process output files
================ ============== ======= ============

aclocal.m4 - - - - - - - .
|
V
.----------,
configure.ac ----------------------->|autoheader|----> autoconfig.h.in
`----------'

4.automake: automake灝哅akefile.am涓畾涔夌殑緇撴瀯寤虹珛Makefile.in錛岀劧鍚巆onfigure鑴氭湰灝嗙敓鎴愮殑Makefile.in鏂囦歡杞崲 涓篗akefile銆傚鏋滃湪configure.ac涓畾涔変簡涓浜涚壒孌婄殑瀹忥紝姣斿AC_PROG_LIBTOOL錛屽畠浼氳皟鐢╨ibtoolize錛屽惁鍒欏畠 浼氳嚜宸變駭鐢焎onfig.guess鍜宑onfig.sub

user input files   optional input   processes          output files
================ ============== ========= ============

.--------,
| | - - -> COPYING
| | - - -> INSTALL
| |------> install-sh
| |------> missing
|automake|------> mkinstalldirs
configure.ac ----------------------->| |
Makefile.am ----------------------->| |------> Makefile.in
| |------> stamp-h.in
.---+ | - - -> config.guess
| | | - - -> config.sub
| `------+-'
| | - - - -> config.guess
|libtoolize| - - - -> config.sub
| |--------> ltmain.sh
| |--------> ltconfig
`----------'

5.autoconf:灝哻onfigure.ac涓殑瀹忓睍寮錛岀敓鎴恈onfigure鑴氭湰銆傝繖涓繃紼嬪彲鑳借鐢ㄥ埌aclocal.m4涓畾涔夌殑瀹忋?/p>

user input files   optional input   processes          output files
================ ============== ========= ============

aclocal.m4 ,autoconfig.h.in - - - - - - -.
V
.--------,
configure.ac ----------------------->|autoconf|------> configure
 
6. ./configure鐨勮繃紼?/pre>

.-------------> [config.cache]
configure* --------------------------+-------------> config.log
|
[config.h.in] -. v .--> [autoconfig.h]
+-------> config.status* -+
Makefile.in ---' `--> Makefile
 
7. make榪囩▼
 
[autoconfig.h] -.
+--> make* ---> 紼嬪簭
Makefile ---'
 
.---------,
config.site - - ->| |
config.cache - - ->|configure| - - -> config.cache
| +-,
`-+-------' |
| |----> config.status
config.h.in ------->|config- |----> config.h
Makefile.in ------->| .status|----> Makefile
| |----> stamp-h
| +--,
.-+ | |
| `------+--' |
ltmain.sh ------->|ltconfig|-------> libtool
| | |
`-+------' |
|config.guess|
| config.sub |
`------------'

.--------,
Makefile ------>| |
config.h ------>| make |
{project sources} ---------------->| |--------> {project targets}
.-+ +--,
| `--------' |
| libtool |
| missing |
| install-sh |
|mkinstalldirs|
`-------------'
瀹炰緥錛?br />鍦?hello/鐩綍涓嬪垱寤轟竴涓猦ello.c鏂囦歡錛屽茍緙栬瘧榪愯瀹冿細

#cd /hello/

(1) 緙栧啓婧愭枃浠秇ello.c錛?/p>

#include<stdio.h>
int main(int argc, char** argv)
{
printf("Hello, GNU!n");
return 0;
}

[litao@vm0000131 hello]$ ll
total 4
-rw-rw-r-- 1 litao litao 68 Aug 12 12:02 hello.c

涓銆乤utoscan

[litao@vm0000131 hello]$ autoscan
autom4te: configure.ac: no such file or directory
autoscan: /usr/bin/autom4te failed with exit status: 1
[litao@vm0000131 hello]$ ll
total 8
-rw-rw-r-- 1 litao litao 0 Aug 12 12:03 autoscan.log
-rw-rw-r-- 1 litao litao 457 Aug 12 12:03 configure.scan
-rw-rw-r-- 1 litao litao 68 Aug 12 12:02 hello.c

宸茬粡鐢熸垚浜哻onfigure.scan錛宎utoscan.log鏂囦歡

灝哻onfigure.scan 淇敼涓?configure.in錛屾渶鍚庝慨鏀圭殑鍐呭濡備笅錛?/p>

[litao@vm0000131 hello]$ mv configure.scan configure.in
[litao@vm0000131 hello]$ vim configure.in

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

AC_PREREQ(2.59)
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
AC_CONFIG_SRCDIR([hello.c])
#AC_CONFIG_HEADER([config.h])
AM_INIT_AUTOMAKE(hello, 1.0)
# 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_OUTPUT(Makefile)

浜屻乤cloacl

[litao@vm0000131 hello]$ aclocal

鐢熸垚 aclocal.m4 鍜?autom4te.cache (鐢熸垚aclocal.m4鐨勮繃紼嬩腑娑夊強鍒癱onfigure.in)

[litao@vm0000131 hello]$ ll
total 44
-rw-rw-r-- 1 litao litao 31120 Aug 12 12:08 aclocal.m4
drwxr-xr-x 2 litao litao 4096 Aug 12 12:08 autom4te.cache
-rw-rw-r-- 1 litao litao 0 Aug 12 12:03 autoscan.log
-rw-rw-r-- 1 litao litao 496 Aug 12 12:08 configure.in
-rw-rw-r-- 1 litao litao 68 Aug 12 12:02 hello.c

涓夈乤ntoconf

[litao@vm0000131 hello]$ autoconf
鐢熸垚 configure (鏍規嵁 configure.in, 鍜? aclocal.m4)
[litao@vm0000131 hello]$ ll
total 168
-rw-rw-r-- 1 litao litao 31120 Aug 12 12:08 aclocal.m4
drwxr-xr-x 2 litao litao 4096 Aug 12 12:11 autom4te.cache
-rw-rw-r-- 1 litao litao 0 Aug 12 12:03 autoscan.log
-rwxrwxr-x 1 litao litao 122297 Aug 12 12:11 configure
-rw-rw-r-- 1 litao litao 496 Aug 12 12:08 configure.in
-rw-rw-r-- 1 litao litao 68 Aug 12 12:02 hello.c

鍥涖佺紪鍐橫akefile.am錛?

AUTOMAKE_OPTIONS= foreign
bin_PROGRAMS= hello
hello_SOURCES= hello.c

浜斻乤utomake

鐢熸垚 Makefile.in錛?depcomp錛?install-sh錛?鍜?missing (鏍規嵁 Makefile.am, 鍜? aclocal.m4)

[litao@vm0000131 hello]$ automake
configure.in: required file `./install-sh' not found
configure.in: required file `./missing' not found
Makefile.am: required file `./depcomp' not found
[litao@vm0000131 hello]$ automake --add-missing
configure.in: installing `./install-sh'
configure.in: installing `./missing'
Makefile.am: installing `./depcomp'
[litao@vm0000131 hello]$ ll
total 192
-rw-rw-r-- 1 litao litao 31120 Aug 12 12:08 aclocal.m4
drwxr-xr-x 2 litao litao 4096 Aug 12 12:14 autom4te.cache
-rw-rw-r-- 1 litao litao 0 Aug 12 12:03 autoscan.log
-rwxrwxr-x 1 litao litao 122297 Aug 12 12:11 configure
-rw-rw-r-- 1 litao litao 496 Aug 12 12:08 configure.in
lrwxrwxrwx 1 litao litao 31 Aug 12 12:16 depcomp -> /usr/share/automake-1.9/depcomp
-rw-rw-r-- 1 litao litao 68 Aug 12 12:02 hello.c
lrwxrwxrwx 1 litao litao 34 Aug 12 12:16 install-sh -> /usr/share/automake-1.9/install-sh
-rw-rw-r-- 1 litao litao 69 Aug 12 12:15 Makefile.am
-rw-rw-r-- 1 litao litao 16561 Aug 12 12:16 Makefile.in
lrwxrwxrwx 1 litao litao 31 Aug 12 12:16 missing -> /usr/share/automake-1.9/missing

鍏乧onfigure
鐢熸垚 Makefile錛?config.log錛?鍜?config.status




RTY 2012-04-03 22:20 鍙戣〃璇勮
]]>
Linux 緇堢涓父鐢ㄧ殑蹇嵎閿?/title><link>http://www.shnenglu.com/lauer3912/archive/2012/03/01/166872.html</link><dc:creator>RTY</dc:creator><author>RTY</author><pubDate>Thu, 01 Mar 2012 07:02:00 GMT</pubDate><guid>http://www.shnenglu.com/lauer3912/archive/2012/03/01/166872.html</guid><wfw:comment>http://www.shnenglu.com/lauer3912/comments/166872.html</wfw:comment><comments>http://www.shnenglu.com/lauer3912/archive/2012/03/01/166872.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/lauer3912/comments/commentRss/166872.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/lauer3912/services/trackbacks/166872.html</trackback:ping><description><![CDATA[     鎽樿: 1. 縐誨姩鍏夋爣蹇嵎閿甤trl+f 鍚戝墠縐誨姩涓涓瓧絎trl+b 鍚戝悗縐誨姩涓涓瓧絎lt+f 鍚戝墠縐誨姩涓涓崟璇峚lt+b 鍚戝悗縐誨姩涓涓崟璇峜trl+a 縐誨姩鍒板綋鍓嶈棣朿trl+e 縐誨姩鍒板綋鍓嶈灝綾trl+l 娓呭睆錛屽茍鍦ㄥ睆騫曟渶涓婇潰寮濮嬩竴涓柊琛?2. 緙栬緫鍛戒護琛屽揩鎹烽敭ctrl+d 鍒犻櫎褰撳墠鐨勫瓧絎trl+t 浜ゆ崲褰撳墠瀛楃鍜屽墠涓涓瓧絎︾殑浣嶇疆alt+t 浜ゆ崲褰撳墠鍗曡瘝鍜屽墠涓涓崟璇嶇殑浣嶇疆alt+u 鎶婂綋鍓嶅崟璇嶅彉...  <a href='http://www.shnenglu.com/lauer3912/archive/2012/03/01/166872.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/lauer3912/aggbug/166872.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/lauer3912/" target="_blank">RTY</a> 2012-03-01 15:02 <a href="http://www.shnenglu.com/lauer3912/archive/2012/03/01/166872.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>KBuild MakeFile浠嬬粛http://www.shnenglu.com/lauer3912/archive/2011/07/21/151523.htmlRTYRTYWed, 20 Jul 2011 23:24:00 GMThttp://www.shnenglu.com/lauer3912/archive/2011/07/21/151523.htmlhttp://www.shnenglu.com/lauer3912/comments/151523.htmlhttp://www.shnenglu.com/lauer3912/archive/2011/07/21/151523.html#Feedback0http://www.shnenglu.com/lauer3912/comments/commentRss/151523.htmlhttp://www.shnenglu.com/lauer3912/services/trackbacks/151523.html


    浠嶭inux鍐呮牳2.6寮濮嬶紝Linux鍐呮牳鐨勭紪璇戦噰鐢↘build緋葷粺錛岃繖鍚岃繃鍘葷殑緙栬瘧緋葷粺鏈夊緢澶х殑涓嶅悓錛屽挨鍏跺浜嶭inux鍐呮牳妯″潡鐨勭紪璇戙?font color="#0000ff" style="word-wrap: break-word; line-height: normal; ">鍦ㄦ柊鐨勭郴緇熶笅錛孡inux緙栬瘧緋葷粺浼氫袱嬈℃壂鎻廘inux鐨凪akefile錛氶鍏堢紪璇戠郴緇熶細璇誨彇Linux鍐呮牳欏跺眰鐨凪akefile錛岀劧鍚庢牴鎹鍒扮殑鍐呭絎簩嬈¤鍙朘build鐨凪akefile鏉ョ紪璇慙inux鍐呮牳銆?/font>
Linux鍐呮牳Makefile鍒嗙被
·         Kernel Makefile 
Kernel Makefile浣嶄簬Linux鍐呮牳婧愪唬鐮佺殑欏跺眰鐩綍錛屼篃鍙?Top Makefile銆傚畠涓昏鐢ㄤ簬鎸囧畾緙栬瘧Linux Kernel鐩爣鏂囦歡錛坴mlinux錛夊拰妯″潡錛坢odule錛夈傝繖緙栬瘧鍐呮牳鎴栨ā鍧楁槸錛岃繖涓枃浠朵細琚鍏堣鍙栵紝騫舵牴鎹鍒扮殑鍐呭閰嶇疆緙栬瘧鐜鍙橀噺銆傚浜庡唴鏍告垨椹卞姩寮鍙?/span>浜哄憳鏉ヨ錛岃繖涓枃浠跺嚑涔庝笉鐢ㄤ換浣曚慨鏀廣?br style="word-wrap: break-word; line-height: normal; " />·         Kbuild Makefile 
Kbuild緋葷粺浣跨敤Kbuild Makefile鏉ョ紪璇戝唴鏍告垨妯″潡銆傚綋Kernel Makefile琚В鏋愬畬鎴愬悗錛孠build浼氳鍙栫浉鍏崇殑Kbuild Makefile榪涜鍐呮牳鎴栨ā鍧楃殑緙栬瘧銆侹build Makefile鏈夌壒瀹氱殑璇硶鎸囧畾鍝簺緙栬瘧榪涘唴鏍鎬腑銆佸摢浜涚紪璇戜負妯″潡銆佸強瀵瑰簲鐨勬簮鏂囦歡鏄粈涔堢瓑銆傚唴鏍稿強椹卞姩寮鍙戜漢鍛橀渶瑕佺紪鍐欒繖涓狵build Makefile鏂囦歡銆?br style="word-wrap: break-word; line-height: normal; " />·         ARCH Makefile 
ARCH Makefile浣嶄簬ARCH/$(ARCH)/Makefile錛屾槸緋葷粺瀵瑰簲騫沖彴鐨凪akefile銆侹ernel Top Makefile浼氬寘鍚繖涓枃浠舵潵鎸囧畾騫沖彴鐩稿叧淇℃伅銆傚彧鏈夊鉤鍙板紑鍙戜漢鍛樹細鍏沖績榪欎釜鏂囦歡銆?br style="word-wrap: break-word; line-height: normal; " />Kbuild Makefile
    Kbuild Makefile鐨勬枃浠跺悕涓嶄竴瀹氭槸Makefile錛屽敖綆℃帹鑽愪嬌鐢∕akefile榪欎釜鍚嶅瓧銆傚ぇ澶氱殑Kbuild鏂囦歡鐨勫悕瀛楅兘鏄疢akefile銆備負浜嗕笌鍏朵粬Makefile鏂囦歡鐩稿尯鍒紝浣犱篃鍙互鎸囧畾Kbuild Makefile鐨勫悕瀛椾負Kbuild銆傝屼笖濡傛灉“Makefile”鍜?#8220;Kbuild”鏂囦歡鍚屾椂瀛樺湪錛屽垯Kbuild緋葷粺浼氫嬌鐢?#8220;Kbuild”鏂囦歡銆?br style="word-wrap: break-word; line-height: normal; " />·         鐩爣瀹氫箟 
Kbuild Makefile鐨勪竴涓渶涓昏鍔熻兘灝辨槸鎸囧畾緙栬瘧浠涔堬紝榪欎釜鍔熻兘鏄氳繃涓嬮潰涓や釜瀵硅薄鎸囧畾鐨刼bj-?鍜寈xx-objs錛?br style="word-wrap: break-word; line-height: normal; " />·         obj-?
obj-?鎸囧畾緙栬瘧浠涔堬紝鎬庝箞緙栬瘧錛熷叾涓殑“?”鍙兘鏄?#8220;y”鎴?#8220;m”錛?#8220;y”鎸囧畾鎶婂璞$紪璇戣繘鍐呮牳涓紝“m”鎸囧畾鎶婂璞$紪璇戜負妯″潡銆傝娉曞涓?
    obj-? = $(target).o
target涓虹紪璇戝璞$殑鍚嶅瓧銆傚鏋滄病鏈夋寚瀹歺xx-objs錛岃繖緙栬瘧榪欎釜瀵硅薄闇瑕佺殑婧愭枃浠跺氨鏄?(target).c鎴?(target).s銆傚鏋滄寚瀹氫簡$(target)-objs錛屽垯緙栬瘧榪欎釜瀵硅薄闇瑕佺殑婧愭枃浠剁敱$(target)-objs鎸囧畾錛屽茍涓斾笉鑳芥湁$(target).c鎴?(target).s鏂囦歡銆?br style="word-wrap: break-word; line-height: normal; " />·         xxx-objs 
xxx-objs鎸囧畾浜嗙紪璇戝璞¢渶瑕佺殑鏂囦歡錛屼竴鑸彧鏈夊湪婧愭枃浠舵槸澶氫釜鏃舵墠闇瑕佸畠銆?br style="word-wrap: break-word; line-height: normal; " />鍙鍖呭惈浜嗚繖涓よ錛孠build Makefile灝卞簲璇ュ彲浠ュ伐浣滀簡銆?br style="word-wrap: break-word; line-height: normal; " />·         宓屽緙栬瘧 
鏈夋椂涓涓璞″彲鑳藉祵鍏ュ埌鍙︿竴涓璞$殑鐩綍涓嬶紝閭d釜濡備綍緙栬瘧瀛愮洰褰曚笅鐨勫璞″憿?鍏跺疄寰堢畝鍗曪紝鍙鎸囧畾obj_?鐨勫璞′負瀛愮洰褰曠殑鍚嶅瓧灝卞彲浠ヤ簡錛?br style="word-wrap: break-word; line-height: normal; " />obj-? = $(sub_target)/
鍏朵腑“?”鍙互鏄?#8220;y”鎴?#8220;m”錛?(sub_target)鏄瓙鐩綍鍚嶅瓧銆?br style="word-wrap: break-word; line-height: normal; " />·         緙栬瘧鍣ㄩ夐」 
灝界鍦ㄥぇ澶氭暟鎯呭喌涓嬩笉闇瑕佹寚瀹氱紪璇戝櫒閫夐」錛屾湁鏃舵垜浠繕鏄渶瑕佹寚瀹氫竴浜涚紪璇戦夐」鐨勩?br style="word-wrap: break-word; line-height: normal; " />·         ccflags-y, asflags-y and ldflags-y 
榪欎簺緙栬瘧閫夐」鐢ㄤ簬鎸囧畾cc銆乤s鍜宭d鐨勭紪璇戦夐」
緙栬瘧澶栭儴妯″潡
鏈夋椂鍊欐垜浠渶瑕佸湪鍐呮牳婧愪唬鐮佹暟鐨勫闈㈢紪璇戝唴鏍告ā鍧楋紝緙栬瘧鐨勫熀鏈懡浠ゆ槸錛?br style="word-wrap: break-word; line-height: normal; " />    make -C $(KERNEL_DIR) M=`pwd` modules
鎴戜滑鍙互鎶婅繖涓懡浠ら泦鎴愬埌Makefile閲岋紝榪欐牱鎴戜滑灝卞彲浠ュ彧杈撳叆“make”鍛戒護灝卞彲浠ヤ簡銆傚洖鎯充笂涓绔犵殑閭d釜Makefile錛屽畠鎶奛ormal Makefile 鍜孠build  Makefile闆嗘垚鍒頒竴涓枃浠朵腑浜嗐備負浜嗗尯鍒獽build Makefile 鍜孨ormal Makefile錛岃繖鏍鋒垜浠敼鍐橫akefile涓哄涓嬪艦寮忥紝騫朵笖娣誨姞Kbuild Makefile - “Kbuild”銆?br style="word-wrap: break-word; line-height: normal; " />##Makefile
ifneq ($(KERNELRELEASE),)
include "Kbuild"
else
KERNEL_DIR = /lib/modules/`uname -r`/build
MODULEDIR := $(shell pwd)
.PHONY: modules
default: modules
modules:
        make -C $(KERNEL_DIR)  M=$(MODULEDIR) modules
clean distclean:
        rm -f *.o *.mod.c .*.*.cmd *.ko
        rm -rf .tmp_versions
endif

## Kbuild
MODULE_NAME = helloworld
$(MODULE_NAME)-objs := hello.o
obj-m   := $(MODULE_NAME).o
涓鑸笉闇瑕佸湪Makefile閲屽寘鍚涓嬩唬鐮?榪欐牱鍐欏畬鍏ㄦ槸涓轟簡鍏煎鑰佺増鏈殑Kbuild緋葷粺銆侹ERNELRELEASE鍙橀噺鍦↘ernel Makefile閲屽畾涔夌殑錛屽洜姝ゅ彧鏈夊湪絎簩嬈$敱Kbuild璇誨彇榪欎釜Makefile鏂囦歡鏃舵墠浼氳В鏋愬埌Kbuild鐨勫唴瀹廣?nbsp;
ifneq ($(KERNELRELEASE),)
include "Kbuild"
else
...
endif
澶栭儴澶存枃浠?/strong>
鏈夋椂闇瑕佽繛鎺ュ唴鏍告簮浠g爜澶栭儴鐨勭郴緇熷ご鏂囦歡錛屼絾Kbuild緋葷粺榛樿鐨勭郴緇熷ご鏂囦歡閮藉湪鍐呮牳婧愪唬鐮佸唴閮紝濡備綍浣跨敤澶栭儴鐨勫ご鏂囦歡鍛紵榪欎釜鍙互鍊熷姪浜嶬build緋葷粺鐨勭壒孌婅鍒?
·         EXTRA_CFLAGS 
EXTRA_CFLAGS鍙互緇橩build緋葷粺娣誨姞澶栭儴緋葷粺澶存枃浠訛紝
    EXTRA_CFLAGS += $(ext_include_path)
涓鑸閮ㄥご鏂囦歡鍙兘浣嶄簬澶栭儴妯″潡婧愭枃浠剁殑鐩綍鍐咃紝濡備綍鎸囧畾鍛紵榪欏彲浠ュ熷姪$(src)鎴?(obj)
·         $(src)/$(obj) 
$(src)鏄竴涓浉瀵硅礬寰勶紝瀹冨氨鏄疢akefile/Kbuild鏂囦歡鎵鍦ㄧ殑璺緞銆傚悓鏍?(obj)灝辨槸緙栬瘧鐩爣淇濆瓨鐨勮礬寰勶紝榛樿灝辨槸婧愪唬鐮佹墍鍦ㄨ礬寰勩?br style="word-wrap: break-word; line-height: normal; " />鍥犳錛屾垜浠慨鏀筀build鏂囦歡娣誨姞 EXTRA_CFLAGS 鏉ュ寘鍚閮ㄥご鏂囦歡灝界鍦ㄨ繖涓┍鍔ㄩ噷娌℃湁寮曠敤澶栭儴緋葷粺澶存枃浠訛細
## Kbuild
MODULE_NAME = helloworld
$(MODULE_NAME)-objs := hello.o
EXTRA_CFLAGS := -I$(src)/include
obj-m   := $(MODULE_NAME).o



·         Goal definitions
Example:
   obj-y += foo.o
鍛婅瘔kbuild錛屽湪鏂囦歡澶逛腑鍙堜竴涓彨鍋歠oo.o鐨刼bject銆俧oo.o灝嗕細琚粠foo.c鎴栬協oo.S琚瀯寤恒?br style="word-wrap: break-word; line-height: normal; " />
濡傛灉foo.o琚瀯寤烘垚涓涓?strong style="word-wrap: break-word; text-align: left; font-style: normal; line-height: normal; font-weight: bold; ">妯″潡
錛屽垯灝嗕嬌鐢ㄥ彉閲?strong style="word-wrap: break-word; text-align: left; font-style: normal; line-height: normal; font-weight: bold; ">obj-m銆?strong style="word-wrap: break-word; text-align: left; font-style: normal; line-height: normal; font-weight: bold; ">Example:
   obj-$(CONFIG_FOO) += foo.o
$(CONFIG_FOO)瑕佷箞鏄痽(built-in)瑕佷箞鏄痬(module)銆傚鏋淐ONFIG_FOO鏃笉鏄痽涔熶笉鏄痬錛岄偅涔堟枃浠跺皢涓嶄細琚紪璇戜篃涓嶄細琚繛鎺ャ?br style="word-wrap: break-word; line-height: normal; " />·         Built-in object goals - obj-y
kbuild Makefiles鍦?strong style="word-wrap: break-word; text-align: left; font-style: normal; line-height: normal; font-weight: bold; ">$(obj-y)鍒楄〃涓負vmlinux鎸囨槑object鏂囦歡銆傝繖涓垪琛ㄤ緷闈犲唴鏍哥殑閰嶇疆銆?br style="word-wrap: break-word; line-height: normal; " />鍦?strong style="word-wrap: break-word; text-align: left; font-style: normal; line-height: normal; font-weight: bold; ">$(obj-y)涓殑鏂囦歡鐨勯『搴忔槸闈炲父閲嶈鐨勩傚垪琛ㄤ腑鍏佽涓や釜鐩稿悓鐨勬枃浠訛細絎竴涓?/strong>瀹炰綋灝嗚榪炴帴鍒癰uilt-in.o錛屽悗闈㈢殑瀹炰綋灝嗕細琚拷鐣ャ?/strong>
榪炴帴鐨勯『搴忎篃寰堥噸瑕侊紝鍥犱負鍦╞oot榪囩▼涓煇浜涘嚱鏁?module_init()/_initcall)灝嗕細鎸夐『搴忓嚭鐜般?/strong>鍥犳錛屽鏋滄敼鍙樹簡榪炴帴欏哄簭錛屽皢浼氭敼鍙樹綘鐨凷CSI鎺у埗鍣ㄧ殑媯嫻嬮『搴忥紝浣犵殑紓佺洏涔熷悓鏃惰閲嶆柊緙栧彿浜嗐?br style="word-wrap: break-word; line-height: normal; " />Example:
  #drivers/isdn/i4l/Makefile
  # Makefile for the kernel ISDN subsystem and device drivers.
  # Each configuration option enables a list of files.
  obj-$(CONFIG_ISDN)             += isdn.o
  obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o
·         Loadable module goals - obj-m
$(obj-m)鎸囨槑object鏂囦歡浣滀負鍙杞界殑鍐呮牳妯″潡琚瀯寤恒備竴涓ā鍧楀彲鑳戒粠涓涓垨鑰呭涓簮鏂囦歡琚瀯寤恒俴build maefile鍙槸綆鍗曠殑灝嗘簮鏂囦歡鍔犲埌%(obj-m)
Example:
  #drivers/isdn/i4l/Makefile
  obj-$(CONFIG_ISDN_PPP_BSDCOMP) += isdn_bsdcomp.o
娉ㄦ剰榪欓噷$(CONFIG_ISDN_PPP_BSDCOMP)鏄痬.
Note: In this example $(CONFIG_ISDN_PPP_BSDCOMP) evaluates to 'm'銆?br style="word-wrap: break-word; line-height: normal; " />濡傛灉涓涓唴鏍告ā鍧椾粠澶氫釜婧愭枃浠舵瀯寤猴紝KBuild灝卞繀欏昏鐭ラ亾浣犳兂浠庡摢浜涢儴鍒嗘瀯寤烘ā鍧椼傚洜姝わ紝浣犱笉寰椾笉璁劇疆$(-objs)鍙橀噺鏉ュ憡璇塊Build銆?br style="word-wrap: break-word; line-height: normal; " />Example:
  #drivers/isdn/i4l/Makefile
  obj-$(CONFIG_ISDN) += isdn.o
  isdn-objs := isdn_net_lib.o isdn_v110.o isdn_common.o
鍦ㄨ繖涓緥瀛愪腑錛屾ā鍧楀悕鏄痠sdn.o,Kbuild灝嗕細緙栬瘧鍒楀湪$(isdn-objs)鐨?/strong>object鏂囦歡錛岀劧鍚庡湪榪欎簺鏂囦歡鐨勫垪琛ㄤ腑璋冪敤"$(LD) -r"鏉ヤ駭鐢焛sdn.o銆?br style="word-wrap: break-word; line-height: normal; " />Kbuild浣跨敤鍚庣紑-objs,-y鏉ヨ瘑鍒販鍚堢殑object鏂囦歡銆傝繖鍏佽Makefiles浣跨敤鍙橀噺CONFIG_sambol鏉ュ喅瀹氫竴涓猳bject鏄惁鏄販鍚坥bject鐨勭殑涓閮ㄥ垎銆?br style="word-wrap: break-word; line-height: normal; " />Example:
  #fs/ext2/Makefile
         obj-$(CONFIG_EXT2_FS)        += ext2.o
   ext2-y                       := balloc.o bitmap.o
         ext2-$(CONFIG_EXT2_FS_XATTR) += xattr.o

鍦ㄨ繖涓緥瀛愪腑錛屽鏋?(CONFIG_EXT2_FS_XATTR)鏄痽錛屽垯xattr.o鍙槸娣峰悎object鏂囦歡ext2.o鐨勪竴閮ㄥ垎銆?br style="word-wrap: break-word; line-height: normal; " />娉ㄦ剰錛屽綋浣犳瀯閫犱竴涓猳bjects鍒板唴鏍鎬腑鏃訛紝涓婇潰鐨勮娉曞綋鐒朵篃鑳藉宸ヤ綔銆傚洜姝わ紝濡傛灉浣犺CONFIG_EXT2=Y,KBuild灝嗕細涓轟綘鏋勫緩涓涓嫭绔嬬殑ext2.o鏂囦歡錛屽茍涓旇繛鎺ュ埌built-in.o銆?br style="word-wrap: break-word; line-height: normal; " />·         Library file goals - lib-y
鐢?strong style="word-wrap: break-word; text-align: left; font-style: normal; line-height: normal; font-weight: bold; ">obj-*
榪炴帴鐨凮bjects鍦ㄦ寚鏄庣殑鏂囦歡澶逛腑琚敤浣滄ā鍧楁垨鑰呯患鍚堣繘built-in.o銆備篃鍙堝彲鑳借鍒楀嚭鐨刼bjects灝嗕細琚寘鍚繘涓涓簱,lib.a銆傛墍鏈夌敤lib-y鍒楀嚭鐨刼bjects鍦ㄩ偅涓枃浠跺す涓緇煎悎榪涘崟鐙殑涓涓簱銆傚垪鍦╫bj-y鍜岄檮鍔犲垪鍦╨ib-y涓殑Objects灝嗕笉浼氳鍖呭惈鍦ㄥ簱涓紝鍥犱負浠栦滑灝嗕細琚換鎰忕殑瀛樺彇銆傚浜庤榪炴帴鍦╨ib-m涓紝榪炵畫鐨刼bjects灝嗕細琚寘鍚湪lib.a涓傚煎緱娉ㄦ剰鐨勬槸kbuild makefile鍙兘鍒楀嚭鏂囦歡鐢ㄤ綔built-in錛屽茍涓斾綔涓哄簱鐨勪竴閮ㄥ垎銆傚洜姝わ紝鍚屼竴涓枃浠跺す鍙兘鍖呭惈涓涓猙uilt-in.o鍜宭ib.a鏂囦歡銆?br style="word-wrap: break-word; line-height: normal; " />Example:
  #arch/i386/lib/Makefile
  lib-y    := checksum.o delay.o
榪欓噷璁蹭細鍒涘緩涓涓熀浜巆hecksum.o鍜宒elay.o鐨勫簱鏂囦歡銆傚浜巏build錛岃瘑鍒竴涓猯ib.a姝e湪琚瀯寤猴紝榪欎釜鏂囦歡澶瑰簲璇ヨ鍒楀湪libs-y涓?strong style="word-wrap: break-word; text-align: left; font-style: normal; line-height: normal; font-weight: bold; ">lib-y
鐨勪嬌鐢ㄦ柟娉曢氬父琚檺鍒跺湪lib/鍜宎rc/*/lib涓?br style="word-wrap: break-word; line-height: normal; " />·         Descending down in directories
涓涓狹akefile鍙礋璐e湪浠栬嚜宸辯殑鏂囦歡澶逛腑鏋勫緩objects銆?鍦ㄥ瓙鏂囦歡澶逛腑鐨勬枃浠跺簲璇ョ敱瀛愭枃浠跺す涓殑Makefiles鏉ョ収欏俱傚鏋滀綘鐭ラ亾浠栦滑錛宐uild緋葷粺灝嗕細鑷姩閫掑綊鍦扮敤鍦ㄥ瓙鏂囦歡澶逛腑鐨刴ake銆?br style="word-wrap: break-word; line-height: normal; " />鍦ㄨ繖縐嶆儏鍐典笅obj-y鍜?strong style="word-wrap: break-word; text-align: left; font-style: normal; line-height: normal; font-weight: bold; ">obj-m
灝辮浣跨敤浜嗐俥xt2瀛樺湪浜庝笉鍚岀殑鏂囦歡澶逛腑錛孧akefile鍑虹幇鍦╢s/錛屽垯鍛婅瘔kbuild浠庡悗闈㈢殑鍙傛暟涓嬫潵銆?br style="word-wrap: break-word; line-height: normal; " />Example:
  #fs/Makefile
  obj-$(CONFIG_EXT2_FS) += ext2/
濡傛灉CONFIG_EXT2_FS琚緗垚y(built-in)鎴栬卪(modular)錛岀浉搴旂殑obj-鍙橀噺灝嗕細琚緗紝騫朵笖kbuild灝嗕細浠巈xt2鏂囦歡澶圭戶鎵夸笅鏉ャ侹build鍙細浣跨敤榪欎簺淇℃伅鏉ュ喅瀹氬畠闇瑕佽闂繖浜涙枃浠跺す錛岃屽湪瀛愭枃浠跺す涓殑Makefile鏉ユ寚鏄庡摢浜涙槸modules鍝簺鏄痓uilt-in銆?br style="word-wrap: break-word; line-height: normal; " />褰撹祴鍊兼枃浠跺す鍚嶅瓧鐨勬椂鍊欙紝浣跨敤CONFIG_variable鏄緢濂界殑閫夋嫨銆傝繖鍏佽kbuild瀹屽叏鐨勮煩榪囨枃浠跺す錛岃屼笉綆ONFIG_option鏄惁鏄痽鎴栬卪銆?br style="word-wrap: break-word; line-height: normal; " />·         Compilation flags
    EXTRA_CFLAGS, EXTRA_AFLAGS, EXTRA_LDFLAGS, EXTRA_ARFLAGS銆?br style="word-wrap: break-word; line-height: normal; " />鎵鏈夌殑EXTRA_ variables鍙?span href="tag.php?name=%D3%A6%D3%C3" class="t_tag" style="word-wrap: break-word; line-height: normal; cursor: pointer; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #ff0000; white-space: nowrap; ">搴旂敤
鍦╧build涓紝浠栦滑琚祴鍊肩殑鍦版柟銆侲XTRA_variables搴旂敤鍦╧build makefile涓墍鏈夌殑鍙墽琛岀殑鍛戒護銆?strong style="word-wrap: break-word; text-align: left; font-style: normal; line-height: normal; font-weight: bold; ">$(EXTRA_CFLAGS) 鎸囨槑鐢?(CC)緙栬瘧C鏂囦歡鐨勬椂鍊欑殑閫夐」銆?br style="word-wrap: break-word; line-height: normal; " />Example:
  # drivers/sound/emu10k1/Makefile
  EXTRA_CFLAGS += -I$(obj)
  ifdef DEBUG
      EXTRA_CFLAGS += -DEMU10K1_DEBUG
  endif
榪欓噷鐨勫彉閲忔槸蹇呴』鐨勶紝鍥犱負欏跺眰鐨凪akefile鎷ユ湁鍙橀噺$(CFLAGS)騫朵笖鐢ㄥ畠鏉ヤ綔涓烘暣涓爲鐨勭紪璇戞爣蹇楀綋緙栬瘧姹囩紪婧愭枃浠剁殑鏃跺?strong style="word-wrap: break-word; text-align: left; font-style: normal; line-height: normal; font-weight: bold; ">$(EXTRA_AFLAGS)錛屽拰姣忎釜鏂囦歡澶圭殑閫夐」鏄浉浼肩殑銆?br style="word-wrap: break-word; line-height: normal; " />Example:
  #arch/x86_64/kernel/Makefile
  EXTRA_AFLAGS := -traditional
$(EXTRA_LDFLAGS)鍜?strong style="word-wrap: break-word; text-align: left; font-style: normal; line-height: normal; font-weight: bold; ">$(EXTRA_ARFLAGS) 瀵逛簬姣忎釜鏂囦歡澶圭殑$(LD)鍜?(AR)閫夐」鏄被浼肩殑銆?br style="word-wrap: break-word; line-height: normal; " />Example:
  #arch/m68k/fpsp040/Makefile
  EXTRA_LDFLAGS := -x
CFLAGS_$@, AFLAGS_$@
CFLAGS_$@鍜?strong style="word-wrap: break-word; text-align: left; font-style: normal; line-height: normal; font-weight: bold; ">AFLAGS_$@鍙簲鐢ㄥ埌褰撳墠kbuild makefile鐨勫懡浠ゃ?br style="word-wrap: break-word; line-height: normal; " />$(CFLAGS_$@) 涓烘瘡涓枃浠剁殑$(CC)鎸囨槑閫夐」銆?strong style="word-wrap: break-word; text-align: left; font-style: normal; line-height: normal; font-weight: bold; ">$@
閮ㄥ垎鏈変竴涓瓧闈笂鐨勫鹼紝鎸囨槑瀹冩槸涓洪偅涓枃浠躲?br style="word-wrap: break-word; line-height: normal; " />Example:
  # drivers/scsi/Makefile
  CFLAGS_aha152x.o =   -DAHA152X_STAT -DAUTOCONF
  CFLAGS_gdth.o    = # -DDEBUG_GDTH=2 -D__SERIAL__ -D__COM2__ \
         -DGDTH_STATISTICS
  CFLAGS_seagate.o =   -DARBITRATE -DPARITY -DSEAGATE_USE_ASM
These three lines specify compilation flags for aha152x.o,
gdth.o, and seagate.o
$(AFLAGS_$@) is a similar feature for source files in assembly
languages.
Example:
  # arch/arm/kernel/Makefile
  AFLAGS_head-armv.o := -DTEXTADDR=$(TEXTADDR) -traditional
  AFLAGS_head-armo.o := -DTEXTADDR=$(TEXTADDR) -traditional


RTY 2011-07-21 07:24 鍙戣〃璇勮
]]>
Linux on Power 涓婄殑璋冭瘯宸ュ叿鍜屾妧鏈?(gdb 錛夊強valgrindhttp://www.shnenglu.com/lauer3912/archive/2011/07/19/151353.htmlRTYRTYMon, 18 Jul 2011 23:30:00 GMThttp://www.shnenglu.com/lauer3912/archive/2011/07/19/151353.htmlhttp://www.shnenglu.com/lauer3912/comments/151353.htmlhttp://www.shnenglu.com/lauer3912/archive/2011/07/19/151353.html#Feedback0http://www.shnenglu.com/lauer3912/comments/commentRss/151353.htmlhttp://www.shnenglu.com/lauer3912/services/trackbacks/151353.html闃呰鍏ㄦ枃

RTY 2011-07-19 07:30 鍙戣〃璇勮
]]>
VirtualBox 4.0.8 鍙戝竷, 鎻愬崌3D鏀寔http://www.shnenglu.com/lauer3912/archive/2011/05/17/146586.htmlRTYRTYTue, 17 May 2011 10:55:00 GMThttp://www.shnenglu.com/lauer3912/archive/2011/05/17/146586.htmlhttp://www.shnenglu.com/lauer3912/comments/146586.htmlhttp://www.shnenglu.com/lauer3912/archive/2011/05/17/146586.html#Feedback0http://www.shnenglu.com/lauer3912/comments/commentRss/146586.htmlhttp://www.shnenglu.com/lauer3912/services/trackbacks/146586.html

VirtualBox 瀹e竷浜?4.0.8 鐗堟湰錛岃鐗堟湰鏀硅繘浜嗗 Gnome 3 鐨?3D 鏀寔銆傚悓鏃惰繕淇浜嗕笉灝慴ug錛屽寘鎷敼鍙?guest 紿椾綋澶у皬鏃跺彲鑳藉鑷寸▼搴忓穿婧冪殑闂浠ュ強 Ubuntu 11.04 浠ュ強 Fedora 15 涓?Gnome 3 鐨勬覆鏌撻棶棰樸?/p>

VirtualBox 鏄竴嬈懼姛鑳藉己澶х殑 x86 铏氭嫙鏈鴻蔣浠訛紝瀹冧笉浠呭叿鏈変赴瀵岀殑鐗硅壊錛岃屼笖鎬ц兘涔熷緢浼樺紓銆?/p>

鏇村鍏充簬VirtualBox鐨勮緇嗕俊鎭紝鎴栬呬笅杞藉湴鍧璇風偣榪欓噷



RTY 2011-05-17 18:55 鍙戣〃璇勮
]]>
Linux Python 濂界敤鐨勫紑鍙戝伐鍏穏ecrithttp://www.shnenglu.com/lauer3912/archive/2011/04/23/144861.htmlRTYRTYSat, 23 Apr 2011 10:07:00 GMThttp://www.shnenglu.com/lauer3912/archive/2011/04/23/144861.htmlhttp://www.shnenglu.com/lauer3912/comments/144861.htmlhttp://www.shnenglu.com/lauer3912/archive/2011/04/23/144861.html#Feedback0http://www.shnenglu.com/lauer3912/comments/commentRss/144861.htmlhttp://www.shnenglu.com/lauer3912/services/trackbacks/144861.htmlhttp://sourceforge.net/projects/gecrit/files/

RTY 2011-04-23 18:07 鍙戣〃璇勮
]]>
精品无码久久久久久久动漫| 97精品久久天干天天天按摩| 久久久久久国产精品无码下载| 99久久夜色精品国产网站| 久久国产精品一区| 久久久亚洲欧洲日产国码二区 | 国产亚洲精久久久久久无码AV| 亚洲国产成人久久综合一区77| 亚洲AV无码1区2区久久| 精品免费久久久久国产一区 | 亚洲狠狠婷婷综合久久蜜芽| 青青青国产成人久久111网站| 国产精品久久久香蕉| 久久91综合国产91久久精品| 久久国产亚洲精品| 中文字幕一区二区三区久久网站 | 久久99精品久久久久久噜噜| 久久婷婷国产综合精品| 亚洲国产成人久久综合一区77| jizzjizz国产精品久久| 午夜久久久久久禁播电影| 欧美精品一区二区久久| www亚洲欲色成人久久精品| 国内精品久久久久久99| 亚洲精品无码久久久久去q| 无码任你躁久久久久久老妇| 久久国产综合精品五月天| 青青青国产成人久久111网站| 久久精品亚洲精品国产色婷| 一本久久a久久精品vr综合| 久久久久se色偷偷亚洲精品av| 国产精品久久久久久久久久免费| 国产99久久精品一区二区| 久久精品国产清高在天天线| 国产三级久久久精品麻豆三级| 午夜欧美精品久久久久久久| 亚洲国产美女精品久久久久∴| 乱亲女H秽乱长久久久| 亚洲国产精品无码久久SM | 欧美一级久久久久久久大片| 久久久这里有精品中文字幕|