|
最近移植tslib庫到android系統(tǒng),發(fā)現(xiàn)編譯好的庫和測試工具竟然沒有輸入到out/target/product/Ok6410/system/lib 和 out/target/product/Ok6410/system/bin下面,感覺很奇怪,于是下定決心看一下,到底輸入到了哪里。
過程如下: tslib的源代碼放到了android2.3 源代碼下 vendor 目錄 (android2.3中自己添加,如何設置自己的vendor 我的博客中有說明)forlinx/OK6410/的下面. tslib目錄下面的 Android.mk寫好以后,重新make clean 整個android源碼,再次make 編譯通過,奇怪的是輸出目錄 out/target/product/Ok6410/system/bin 下面竟然沒有tslib相關的工具,而是放在了out/target/product/OK6410/symbols/system/bin 下面,在做打包文件時,由于沒有把symbols文件夾放到文件系統(tǒng)里面,所以校準功能不能實現(xiàn)。(事實上提取文件系統(tǒng)過程中也不應該把symbols文件夾考慮在內(nèi))。
最后查找原因 ,是因為tslib文件下的Android.mk文件里面,LOCAL_MODULE_TAGS變量設置的有問題。 LOCAL_MODULE_TAGS :=optional 把這項改為 LOCAL_MODULE_TAGS :=eng即可
原因是LOCAL_MODULE_TAGS 變量跟TARGET_BUILD_VARIANT 變量息息相關。 android系統(tǒng)編譯時如果不指定 TARGET_BUILD_VARIANT 變量的值,默認 TARGET_BUILD_VARIANT=eng ,這一項指定 編譯android時形成的版本風格,一般發(fā)布時使用這個值,當然還有user,debuguser等風格值,具體看一下這個鏈接http://android.git./?p=platform/build.git;a=blob_plain;f=core/build-system.html;h=43bae03b6b7b9cba678b86d2faf424fa565497bf;hb=HEAD,如果打不開,翻個墻就可以。 這樣設置好以后,重新編譯,輸出目錄out/target/product/Ok6410/system/bin ,out/target/product/Ok6410/system/lib里面就有tslib 相關的庫和測試程序了。 所以,如果自己需要加額外的模塊,或者應用程序,一定要注意Android.mk里面的這個變量,當然了,如果你指定了LOCAL_MODULE_TAGS :=optional,也能編譯出來,但是存放的輸入路徑就不是一般的 out/target/product/Ok6410/system/目錄了,而是out/target/product/OK6410/symbols/system/目錄。 后來自己在android源代碼的 external目錄下面放了一個模塊,指定該模塊的編譯風格為LOCAL_MODULE_TAGS :=optional,重新編譯,通過以后,竟然直接輸出到了out/target/product/Ok6410/system/ 目錄,很是驚訝,個人認為還跟模塊存放的目錄有關.所以無論模塊在哪個文件夾下面,最好指定的值跟TARGET_BUILD_VARIANT 相關,如果沒指定TARGET_BUILD_VARIANT ,系統(tǒng)會默認設置TARGET_BUILD_VARIANT =eng,你也就指定LOCAL_MODULE_TAGS :=eng
目前自己遇到的 vendor目錄,hardware目錄下面的模塊輸出路徑跟LOCAL_MODULE_TAGS 有很大的關系 LOCAL_MODULE_TAGS :=optional >> out/target/product/OK6410/symbols/system/ LOCAL_MODULE_TAGS :=eng >> out/target/product/Ok6410/system/
當然前提是TARGET_BUILD_VARIANT=eng .
下面是網(wǎng)友遇到的類似問題:
"Set LOCAL_MODULE_TAGS to any number of whitespace-separated tags. This variable controls what build flavors the package gets included * user: include this in user/userdebug builds Are these the same as "variants" and if so, which name would affect
以上是自己在移植android2.3過程中發(fā)現(xiàn)的一個問題,如果您也遇到了,并且認為我的解釋存在問題,請指出,以免給大家?guī)碚`解。
|
|
|