我正在构建一个 API,以使用 swig 和 gradle 作为构建系统在 C、Puthon 和 JVM 之间创建桥梁。问题是,如果我想将 swig 生成的源代码链接到 python 头文件,我需要将这些头文件包含到构建中,但我找不到明确的方法来做到这一点。遗憾的是,gradle 目前缺乏原生构建的文档。
我从不同的来源组成了以下模型定义:
model {
repositories {
libs(PrebuiltLibraries) {
pythonHeaders {
headers.srcDirs "$pythonPath/include"
}
jdkHeaders{...}
}
}
components {
transport(NativeLibrarySpec) {
sources {
lib library: 'pythonHeaders'
c {
source {...}
exportedHeaders {...}
}
}
}
}
toolChains {...}
}
此定义适用于静态库,但不适用于共享库,因为
python36.lib
不在链接器路径上。PreabuiltLibrary
接口(interface)有一个名为 binaries
的字段,但我看不到使用 DSL 添加到它的方法。是否有任何标准的修复方法或解决方法?
最佳答案
Alexander Volanis here 提供的答案似乎正在工作。在 Anaconda 中,静态库放在 libs
Anaconda 根目录中的目录和 dll-s。
关于java - Gradle:将 native 库与现有的外部库链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48406234/