我有一个需要链接到其他静态库的静态库。
当我尝试运行时./gradlew common:cinteropSomeLibIos
:
我总是得到IllegalStateException: Could not find 'libabseil.a' binary in neither of [external/lib]
我的定义文件:
headers = SomeHeader.h
language = Objective-C
package = com.mypackage
staticLibraries = libabseil.a libMyLib.a
libraryPaths = external/lib
linkerOpts = -lObjC -all_load
一切都在 AndroidStudio/IntelliJ 中运行,但是当使用命令行界面或使用 bazel 构建时,我一直收到上述错误。
我尝试添加:
val main by compilations.getting {
kotlinOptions {
freeCompilerArgs = listOf(
"-include-binary", "$libLocation/libabseil.a"
)
}
}
以及在 gradle 文件中设置 linkerOpts ,但这会导致:
warning: -linker-option(s)/-linkerOpts option is not supported by cinterop. Please add linker options to .def file or binary compilation instead.
有没有办法让它工作,或者至少以 .def 文件中的相对路径可以工作的方式调用 cinterop 任务?