2014-03-01 47 views
0

在Android.mk的OpenCVAndroid,有行,如下:Android.mk中OpenCV4Android的%=%意味着什麼?

MY_PREFIX := $(LOCAL_PATH) 
MY_SOURCES := $(wildcard $(MY_PREFIX)/*.cpp) 
LOCAL_SRC_FILES := $(MY_SOURCES:$(MY_PREFIX)%=%) 

是什麼%=%意味着什麼? 我參考了GNU make的手冊,但未能找到答案。 什麼是最終本地源文件('LOCAL_SRC_FILES')?

回答

1

%符號表示截斷模式右側的任何內容。

對我來說,

LOCAL_SRC_FILES := $(MY_SOURCES:$(MY_PREFIX)%=%) 

意味着

採取MY_SOURCES(即* .cpp文件MY_PREFIX這是LOCAL_PATH下),並得到任何關於MY_PREFIX右邊來,然後分配它到LOCAL_SRC_FILES

但是,我有點困惑,爲什麼他們沒有從MY_SOURCES中刪除斜線。那就是,我會使用以下內容:

LOCAL_SRC_FILES := $(MY_SOURCES:$(MY_PREFIX)/%=%) 
+0

非常感謝。有關使用%符號的相關資料在哪裏?我仍然可以在GNU make手冊上找到它。爲什麼我們需要截斷?我想我們可以直接簽署MY_SOURCE到LOCAL_SRC_FILES。 – user1914692

+0

'MY_SOURCES'包含'MY_PREFIX'路徑,這就是爲什麼你需要截斷並且不能直接分配給'LOCAL_SRC_FILES'。有關參考資料,請參見[字符串替換和分析函數](https://www.gnu.org/savannah-checkouts/gnu/make/manual/html_node/Text-Functions.html) – ozbek