我刚开始在gradle中构建c / cpp插件。这是项目结构
.
|-- build.gradle
`-- src
`-- main
`-- c
`-- hello.c
hello.c的内容
#include <stdio.h>
int main(int argc, char** argv){
printf("Hello World!\n");
return 0;
}
build.gradle的内容
apply plugin: 'c'
executables {
main {
}
}
当我运行:$ gradle mE时,我收到以下错误
FAILURE: Build failed with an exception.
* Where:
Build file '/home/sujith/Downloads/cpp-examples-master/gradle-c-plugin/03-executable/build.gradle' line: 3
* What went wrong:
A problem occurred evaluating root project '03-executable'.
> Could not find method executables() for arguments [build_aaxd7x5nukew1jgziyan9q177$_run_closure1@57552dfc] on root project '03-executable'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 2.297 secs
取自https://github.com/ysoftdevs/cpp-examples
的示例项目Gradle版本:
$ gradle -version
------------------------------------------------------------
Gradle 2.3
------------------------------------------------------------
Build time: 2015-02-16 05:09:33 UTC
Build number: none
Revision: 586be72bf6e3df1ee7676d1f2a3afd9157341274
Groovy: 2.3.9
Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM: 1.7.0_67 (Oracle Corporation 24.65-b04)
OS: Linux 3.13.0-24-generic amd64
我错过了什么吗? 任何帮助表示赞赏。谢谢
答案 0 :(得分:4)
我遇到了同样的问题,即使用executables { ... }
不起作用并抛出与您提到的相同的错误。可能它在旧版本的gradle中使用。
我引用了gradle docs来构建原生二进制文件。
我在build.gradle
中使用了此代码:
apply plugin: 'c'
model {
components {
main(NativeExecutableSpec) {}
}
}
你的代码应该可以正常使用。
在此之后,您可以执行gradle tasks
以了解可以执行的任务。
您可以运行gradle build
并将您的可执行文件作为build/binaries/mainExecutable/main
运行。
很抱歉,这个答案非常具体针对您的要求而我可能无法帮助您进行概括,因为我仍然在学习如何使其适应我的C
项目。
希望这会对你有所帮助。
编辑:您还可以查看提供here的这个惊人示例。以此为基础,您可以增强和改进build.gradle
文件。但是这里的一个小问题是它使用了executables {...}
,libraries {...}
等等,它们可能已被弃用,但它仍然是一个很好的阅读。