我在使用Gradle构建Ada时遇到了麻烦。我认为它不应该太难,因为Ada是使用GCC和Ada编译器构建的,但我错了。我已经浏览了整个互联网和Gradle文档,但我还没有找到解决方案。
当我运行./gradlew build,./ gradlew compileCalcExecutableCalcC或./gradlew calcExecutable(我的Ada文件名为calc.adb)时,这是我的错误
任务执行失败':汇编'。 找不到可构建的二进制文件: - 可执行' calc:可执行':没有工具链可用于构建平台' linux_x86-64': - 工具链' gnat' (GNU GCC):无法确定GCC元数据:未能执行gnatmake -dM -E -v - 。 - 工具链' gnat_clang' (Clang):无法确定Clang元数据:无法执行gnatmake -dM -E -v - 。
这是我的build.gradle文件:
apply plugin: 'c'
model{
toolChains{
gnat(Gcc){ // Gradle doesn't have an Ada toolchain, so we're creating a custom toolchain
target("linux_x86-64"){
path '/usr/bin'
cCompiler.executable = 'gnatmake'
cCompiler.withArguments{ args ->
Collections.replaceAll(args, "CUSTOM", '-f', '-u', '-c')
} // end cCompiler.withArguments
} // end target()
} // end gnat
gnat_clang(Clang){
target("linux_x86-64") {
path '/usr/bin'
cCompiler.executable = 'gnatmake'
cCompiler.withArguments{ args ->
Collections.replaceAll(args, "CUSTOM", '-f', '-u', '-c')
}
} // end target
} // end gnat_clang
} // end toolChains
components{
calc(NativeExecutableSpec){
binaries.all{
cCompiler.args "-f", "-u", "-c", "calc.adb"
} // end binaries.all
sources{
c.source.srcDirs = ['src/']
c.source.includes = ['**/calc.adb']
}
} // end calc
} // end components
} // end model
My Gradle和Gradle Wrapper版本为4.7,我的Groovy版本为2.4.12
更新
Gradle现在识别新标志。这是更新的build.gradle:
apply plugin: 'c'
model{
toolChains{
gnat(Gcc){ // Gradle doesn't have an Ada toolchain, so we're creating a custom toolchain
target("linux_x86-64"){
path '/usr/bin'
cCompiler.executable = 'gnatmake'
cCompiler.withArguments{ args ->
Collections.replaceAll(args, "CUSTOM", "-dM -E -v -.")
} // end cCompiler.withArguments
} // end target()
} // end gnat
} // end toolChains
components{
calc(NativeExecutableSpec){
sources{
c.source.srcDirs = ['src/']
c.source.includes = ['**/calc.adb']
}
} // end calc
} // end components
} // end model
现在Gradle正在宣传一个新的错误,我不完全确定如何解决这个问题。
没有工具链可用于构建平台' linux_x86-64':
- 工具链' gnat' (GNU GCC):无法确定GCC元数据:未能执行gnatmake -dM -E -v - 。
- 工具链' gnat_clang' (Clang):无法确定Clang元数据:无法执行gnatmake -dM -E -v - 。