Я создаю проект C с использованием Gradle, который включает sqlite3 как родную зависимость. Я хотел бы создать только статическую библиотеку, поскольку мне не нужна общая библиотека (.so). В документации Gradle указано, что оба они построены по умолчанию, но не для того, чтобы создавать только один или другой. Я попытался включить buildable = false
для соответствующих двоичных типов, но это приводит к ошибке. Я прикрепил свой build.gradle ниже. Я знаю, что эта проблема не нарушает ничего, но это действительно подтачивает меня, потому что это будет большой тратой времени на сборку, так как проект будет двигаться дальше.Создайте статическую библиотеку только с помощью Gradle
Любая помощь или предложения будут высоко оценены!
apply plugin: 'c'
model {
components {
sqlite3(NativeLibrarySpec) {
sources.c {
source {
srcDir "lib/sqlite3"
include "*.c"
}
exportedHeaders {
srcDir "lib/sqlite3"
include "*.h"
}
}
// Attempted to make the shared Library unbuildable, but this results in a model error!
// binaries.withType(SharedLibraryBinarySpec) {
// buildable = false
// }
}
main(NativeExecutableSpec){
sources.c {
source{
srcDir "src"
include "**/*.c"
}
exportedHeaders {
srcDir "inc"
}
}
binaries.all {
lib library: 'sqlite3', linkage: 'static'
linker.args '-ldl', '-pthread', '-lpam', '-lgnutls', '-lgcrypt', '-levent'
}
}
}
toolChains {
clang(Clang)
}
tasks {
run(Task) {
dependsOn 'build'
doLast() {
mkdir('build/run')
println(' --- BEGIN OUTPUT ---\n')
exec {
executable '../binaries/mainExecutable/main'
workingDir './build/run'
}
println('\n --- END OUTPUT ---')
}
}
}
}
Когда вы пишете «но это приводит к ошибке», какова ошибка, где ошибка, и вы ошиблись в Google? – nicomp