android
}}
在頂層cmakelists.txt檔案中又可以通過add_subdirectory(子目錄路徑)
新增構建子目錄,當呼叫到該命令時就會去執行子目錄下cmakelists.txt檔案,執行成功後再返回。
//在build.gradle檔案中設定開關
externalnativebuild
/**如果是ndk-build編譯的話就改寫如下
ndkbuild
*/}
-d 命令就是巨集定義,這裡我們巨集定義了乙個 debug。接下來我們在原生**裡面我們就可以根據是否定義了這個巨集來決定是否輸出日誌。**如下:
檔案如下
#include
#include
#ifdef debug
#include
#define log_tag "來自jni:"
#define loge(...) __android_log_print(android_log_error, log_tag, __va_args__)
#endif
extern "c"
jniexport jstring
jnicall
jnienv *env,
jobject /* this */)
還要新增日誌庫並且鏈結上目標庫
//若是用cmake編譯則在cmakelists.txt檔案中
find_library( log
-lib
log )
target_link_libraries( native-lib $ )
//若是用ndk-build編譯則在android.mk檔案中
local_path := $(call my-dir)
include $(clear_vars)
local_module := native-lib
local_src_files := native-lib
.clocal_ldlibs :=
-llog
//在目標模組中新增日誌庫
include $(build_shared_library)
add_library(...)
# specifies a path to native header files.
include_directories(src/main/cpp/include/)
CMake交叉編譯配置
很多時候,我們在開發的時候是面對嵌入式平台,因此由於資源的限制需要用到相關的交叉編譯。即在你host宿主機上要生成target目標機的程式。裡面牽扯到相關標頭檔案的切換和編譯器的選擇以及環境變數的改變等,我今天僅僅簡單介紹下相關cmake在面對交叉編譯的時候,需要做的一些準備工作。cmake給交叉編...
CMake交叉編譯配置
很多時候,我們在開發的時候是面對嵌入式平台,因此由於資源的限制需要用到相關的交叉編譯。即在你host宿主機上要生成target目標機的程式。裡面牽扯到相關標頭檔案的切換和編譯器的選擇以及環境變數的改變等,我今天僅僅簡單介紹下相關cmake在面對交叉編譯的時候,需要做的一些準備工作。cmake給交叉編...
編譯配置工具 CMake
cmake是乙個比make更高階的編譯配置工具,主要編寫cmakelists.txt檔案,然後使用cmake指令生成makefile檔案.cmake編譯 cmake directory makedirectory是cmakelist.txt所在目錄 command args.command是命令名,...