kotlin - Kotlin 的 cinterop .def 不适用于相对路径
问题描述
我有一个需要链接到其他静态库的静态库。
当我尝试运行时./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 任务?
解决方案
推荐阅读
- es6-modules - 使用 Rollup 解析从 URL 导入的 ES6 模块
- excel - VBA TextToColumns 格式自动从 24 小时到 12 小时
- sql-server - [Microsoft][ODBC SQL Server Driver][SQL Server]'@errno' 附近的语法不正确
- ruby-on-rails - 适用于 Ruby on Rails 的 Instagram Webhook
- c++ - 在 C++ 中,从一个线程写入并从另一个线程读取时,向量线程是否安全?
- laravel - Laravel 创建相关模型视图,传递预填充值
- javascript - jQuery 验证删除错误消息而不是显示:无
- python - 使用 olefile 从 Word .doc 中提取文本
- java - 用随机数填充矩阵,垂直或水平不重复
- c - 如何在 C 语言中使用 strxfrm?