Skip to content

Commit

Permalink
native link
Browse files Browse the repository at this point in the history
  • Loading branch information
REBOOTERS committed May 12, 2024
1 parent e99bc3f commit 9cf4e3d
Show file tree
Hide file tree
Showing 7 changed files with 19 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ private const val PATCH = "patch"
class PatchViewModel(val app: Application) : AndroidViewModel(app) {

fun copyFile() {
val exceptionHandler = CoroutineExceptionHandler { coroutineContext, throwable ->
val exceptionHandler = CoroutineExceptionHandler { _, throwable ->
Log.e(TAG, "exceptionHandler: " + throwable.stackTraceToString())
}
viewModelScope.launch(exceptionHandler) {
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
22 changes: 18 additions & 4 deletions subs/cpp_native/src/main/cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,10 @@ project("cpp_native")

#定义一个全局变量包含了所有要编译的C文件
file(GLOB BZIP bzip/*.c)
message("11111")
message("----------start------")
message("${BZIP}")
message("22222")
message("${CMAKE_CURRENT_SOURCE_DIR}")
message("----------end------")
#导入头文件
include_directories(bzip)
include_directories(logcat)
Expand All @@ -30,10 +31,16 @@ add_library( # Sets the name of the library.
SHARED
#将bzip下的.c文件添加到library
# ${BZIP}
bspatch.c
# bspatch.c
# Provides a relative path to your source file(s).
cpp_native.cpp)

# 将 bspatch 的源码编译为共享库
add_library(
bspatch_tool
SHARED
bspatch.c)

# Searches for a specified prebuilt library and stores the path as a
# variable. Because CMake includes system libraries in the search path by
# default, you only need to specify the name of the public NDK library
Expand All @@ -47,13 +54,20 @@ find_library( # Sets the name of the path variable.
# you want CMake to locate.
log)

## 定义 distributionDir 变量,声明所依赖的 so 库存放的位置,这个不是必须的,只是为了灵活方便
set(distributionDir ${CMAKE_CURRENT_SOURCE_DIR}/third-lib)
## 所依赖的三方库定义名称,STATIC IMPORTED 表示是导入的
add_library(lib_bspatch STATIC IMPORTED)
## 定义导入的 so 库的路径
set_target_properties(lib_bspatch PROPERTIES IMPORTED_LOCATION ${distributionDir}/${ANDROID_ABI}/libbspatch_tool.so)

# Specifies libraries CMake should link to your target library. You
# can link multiple libraries, such as libraries you define in this
# build script, prebuilt third-party libraries, or system libraries.

target_link_libraries( # Specifies the target library.
cpp_native

lib_bspatch
# Links the target library to the log library
# included in the NDK.
${log-lib})
Binary file not shown.

0 comments on commit 9cf4e3d

Please sign in to comment.