Android中CMake的使用之三呼叫第三方庫

2021-07-30 07:53:45 字數 1386 閱讀 1731

android中cmake的使用之三呼叫第三方庫

在開發過的過程中,難免會呼叫第三方的庫,比如說ffmp啊,opencv等等啊,這就會出現這樣乙個問題,如何使用這種第三方的so呢(.a)?這裡需要說明一下的是,需要把ndk中自帶的庫的排除在第三方庫之外,因為自己的環境麼,使用起來還是比較簡單的,在find_library中進行簡單設定一下就可以了。看一下自帶的例程上的說明即可。

add_library( # sets the name of the library.

test-lib

# sets the library as a shared library.

shared

# provides a relative path to your source file(s).

imported)

set_target_properties(

test-lib

properties imported_location

$/libs/$/libtest-lib.so

#../../../../libs/$/libtest-lib.so

target_link_libraries( # specifies the target library.

native-lib

test-lib

# links the target library to the log library

# included in the ndk.

$ )這裡最讓人折騰的心煩的地方是紅色的路徑設定部分,按照類似於add_library中的路徑設定根本沒用,編譯直接報錯,後來只好使用絕對路徑,即把整個路徑設定好,就沒有問題,但是這麼做的話有乙個缺點啊,很不方便而且容易在工程的拷貝過程中,引起不必要的修改,導致**管理上的問題。

最後幾經查詢和實驗,發現設定的紅色路徑可以用。非紅色的那個,需要設定一下project這個巨集,其實和絕對路徑沒有差別了。

網上說,第三庫的位置是相對於cpp(.c)的相對位置(個人分析了更傾向於.externalnativebuild中的編譯路徑,沒找到權威的說明),不過最好使用

,這個清晰明了。

對於使用的第三主庫提供了第三方的標頭檔案 的,可以將標頭檔案直接拷貝到當前目錄下使用,也可以使用cmakelists.txt中提供的include_directories(imported-lib/include/).一般情況下來說,直接拷貝過來比較方便,除非你大規模的使用了相關的第三方庫,為了管理方便,那麼前者就更好用一些。

最後乙個需要說明的是,引用了多個庫以後,要加入到loadlibrary中,否則崩潰,如下:

static

萬事開頭難,第一腳不好踢,踢出去才發現,其實也就那樣。

Android中各種drawable的使用

又如,通知欄圖示要多大呢?如果大小不合適,則顯示通知的時候看到的圖示可能顯示不全或者其它問題,要想知道通知欄圖示多大合適,找android系統設計的那些呀,路徑為 sdk platforms android 15 data res,在這裡搜尋notification,然後看看相同名字的通知欄圖示在不...

談Android中GoogleMap的使用(二)

先看看 囿於篇幅,匯入的包省略 public class showtrack extends mapactivity protected boolean isroutedisplayed private void findviews 設定放大按鈕 mzout button findviewbyid ...

Android中socket通訊的簡單使用

程式在模擬器上能接收到訊息,但是在真機上接收不到 例子1客戶端傳送資訊,伺服器端輸出資訊到輸出台上 核心 客戶端 this.button.setonclicklistener new onclicklistener catch exception e finally catch ioexceptio...