как связать статическую библиотеку из подпроекта gradle в подпроекте приложения - PullRequest
0 голосов
/ 31 октября 2019

У меня есть такая структура проекта:

MyProject/  
├── gradle.build  
├── gradle.settings  
├── MyCppApp/  
|   ├── gradle.build  
|   ├── gradle.settings  
│   └── src/  
|       └── main/  
|           └── cpp/  
|               └── my_cpp_app.cpp  
└── MyCppLib/  
    ├── gradle.build  
    ├── gradle.settings  
    └── src/  
        ├── main/  
        |   ├── cpp/  
        |   |   └── my_cpp_lib.h
        |   └── public/
        |       └── my_cpp_lib.h
        └── test/
            └── cpp/
                └── my_cpp_lib_test.cpp

Мои файлы Gradle:

settings.gradle

include 'MyCppLib'
include 'MyCppApp'

build.gradle

configure(':MyCppApp') {
    dependencies {
//        compile project(':MyCppLib')   <-- this does not work
    }
}

MyCppApp/build.gradle

apply plugin: "cpp-application"


dependencies {
//    compile project(':MyCppLib')  <-- this does not work
}

MyCppLib/build.gradle

apply plugin: "cpp-library"
apply plugin: "cpp-unit-test"


library {
    linkage = [Linkage.STATIC]
}

Я устал compile project(':MyCppLib') в обоих показанных местах, а также implementation project(':MyCppLib'). Ошибка всегда в том, что соответствующая функция не найдена, но в моем понимании задачи должны автоматически добавляться плагинами.
Я ожидаю простого решения, так как цель очевидна, но, помимо некоторого проекта Android, я очень новичок в gradleи не смог выяснить это из струи.

1 Ответ

0 голосов
/ 31 октября 2019

Итак, наконец-то я нашел ответ сам и довольно просто.

в MyCppApp/build.gradle

это должно быть

apply plugin: "cpp-application"

application {
    dependencies {
        implementation project(':MyCppLib')
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...