C++ 如何在应用程序子项目中从gradle子项目链接静态库

C++ 如何在应用程序子项目中从gradle子项目链接静态库,c++,gradle,C++,Gradle,我的项目结构如下: MyProject/ ├── gradle.build ├── gradle.settings ├── MyCppApp/ | ├── gradle.build | ├── gradle.settings │ └── src/ | └── main/ | └── cpp/ | └── my_cpp_app.cpp └── MyCppLib/ ├── gr

我的项目结构如下:

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'
configure(':MyCppApp') {
    dependencies {
//        compile project(':MyCppLib')   <-- this does not work
    }
}
apply plugin: "cpp-application"


dependencies {
//    compile project(':MyCppLib')  <-- this does not work
}
apply plugin: "cpp-library"
apply plugin: "cpp-unit-test"


library {
    linkage = [Linkage.STATIC]
}
build.gradle

include 'MyCppLib'
include 'MyCppApp'
configure(':MyCppApp') {
    dependencies {
//        compile project(':MyCppLib')   <-- this does not work
    }
}
apply plugin: "cpp-application"


dependencies {
//    compile project(':MyCppLib')  <-- this does not work
}
apply plugin: "cpp-library"
apply plugin: "cpp-unit-test"


library {
    linkage = [Linkage.STATIC]
}
MyCppLib/build.gradle

include 'MyCppLib'
include 'MyCppApp'
configure(':MyCppApp') {
    dependencies {
//        compile project(':MyCppLib')   <-- this does not work
    }
}
apply plugin: "cpp-application"


dependencies {
//    compile project(':MyCppLib')  <-- this does not work
}
apply plugin: "cpp-library"
apply plugin: "cpp-unit-test"


library {
    linkage = [Linkage.STATIC]
}
我在所示的两个位置编译了项目(':MyCppLib'),也编译了实现项目(':MyCppLib')。错误总是找不到相应的函数,但据我所知,任务应该由插件自动添加。

我希望有一个简单的解决方案,因为目标是显而易见的,但除了一些android项目,我对gradle很陌生,无法用jet解决它。

因此,最终我自己找到了答案,答案非常简单

mycpapp/build.gradle中

include 'MyCppLib'
include 'MyCppApp'
configure(':MyCppApp') {
    dependencies {
//        compile project(':MyCppLib')   <-- this does not work
    }
}
apply plugin: "cpp-application"


dependencies {
//    compile project(':MyCppLib')  <-- this does not work
}
apply plugin: "cpp-library"
apply plugin: "cpp-unit-test"


library {
    linkage = [Linkage.STATIC]
}
一定是这样

apply plugin: "cpp-application"

application {
    dependencies {
        implementation project(':MyCppLib')
    }
}