2015-03-18 4 views
4

Я новый в строительство c/cpp плагин в градации. Это структура проектаСтроительство c программы с градиентом

. 
|-- 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 М.Е., я получаю следующее сообщение об ошибке

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 [[email protected]] 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 

я упускаю что-нибудь? Любая помощь приветствуется. Спасибо

+1

Поддержка родной сборки значительно изменилась в Gradle 2.3. Я хотел бы ознакомиться с [Gradle User Guide] (http://www.gradle.org/docs/current/userguide/nativeBinaries.html) для получения дополнительной информации. –

ответ

4

Я столкнулся с той же проблемой, когда использование executables { ... } не работает и вызывает такую ​​же ошибку, как вы упомянули. Вероятно, он использовался в старой версии градиента.

Я сослался на град docs для создания родных двоичных файлов.

Я использовал этот код в build.gradle:

apply plugin: 'c' 

model { 
    components { 
    main(NativeExecutableSpec) {} 
    } 
} 

И ваш код должен работать хорошо с этим.

После этого вы можете выполнить gradle tasks, чтобы узнать, какие задачи могут быть выполнены.

Вы можете запустить gradle build и запустить свой исполняемый файл в качестве build/binaries/mainExecutable/main.

Извините, что этот ответ очень специфичен для того, что вы просили, и я, возможно, не смогу помочь вам обобщить его, поскольку я все еще учась адаптировать его к моему проекту C.

Надеюсь, это вам поможет.

EDIT: Вы также можете ознакомиться с этим удивительным примером here. Используя это в качестве базы, вы можете улучшить и улучшить свой файл build.gradle. Но один маленький clincher здесь состоит в том, что он использует executables {...}, libraries {...} и т. Д., Которые, вероятно, устарели, но это все еще хорошее чтение.

Смежные вопросы