C ++ с Gradle

В Gradle 1.10 Примечания к выпуску http://www.gradle.org/docs/current/release-notes Я вижу упомянутую сборку C ++.

Как настроить проект C ++ для сборки с Gradle? (без IDE)

Предположим, у меня есть

ProjectFolder/hello.cpp
ProjectFolder/build.gradle

hello.cpp:

#include <stdio.h>
#include <stdlib.h>

int main(void) {
puts("Hello World!!!");
return EXIT_SUCCESS;
}

Что должно быть основным build.gradle быть для этого проекта C ++?

ОБНОВЛЕНИЕ: я уже посмотрел на Глава 72 Руководства пользователя и упомянутые 2-летние примеры. Они не делают это проще, но сложнее.

Есть 1 пример файла с 6 строками. Я не касался C ++ в течение 10 лет, и я просто хотел быстро начать, например. с GCC. (Пока не найдено)

29

Решение

  1. положить это в build.gradle

    apply plugin: 'cpp'
    executables {
    hello {}
    }
    
  2. поместите ваш исходный файл в src / hello / cpp / say_hello.cpp

  3. запустить ‘gradle helloExecutable’

  4. Ваш исполняемый файл должен быть собран для сборки / binaries / helloExecutable / hello

Или, если вы хотите, чтобы ваш источник был в src / foo / bar, добавьте

sources {
hello {
cpp {
source {
srcDir "src/foo/bar"}
}
}
28

Другие решения

Начиная с Gradle 2.3 произошли серьезные изменения в сборках нативных компонентов и executables а также libraries контейнеры больше не доступны. Приводя Gradle 2.3 Замечания к выпуску:

… DSL для определения собственных исполняемых файлов и библиотек имеет
принципиально изменилось. Контейнеры исполняемых файлов и библиотек имеют
были удалены, и компоненты теперь добавляются по типу к компонентам
контейнер принадлежит модели реестра
. Еще одно важное изменение заключается в том, что
исходные наборы для компонента теперь объявляются непосредственно в
определение компонента, вместо того, чтобы настраиваться на источниках
блок.

Обновленный код Gradle, совместимый с Gradle 2.3+, будет выглядеть следующим образом:

model {
components {
hello(NativeExecutableSpec) {
sources {
cpp {
source {
srcDir "src/foo/bar"}
}
}
}
}
}

Вы можете узнать больше о новой модели в руководстве пользователя Gradle Вот.

11

Это еще один ответ.
Я использую Gradle 2.4.7. Мой исходный код является стандартом C ++, как в следующей структуре каталогов в Windows:

мой проект

MyProject \ SRC

MyProject \ SRC \ main.cpp

MyProject \ build.gradle

main.cpp — это просто программа Hello world C ++.

У меня Visual Studio 2015. Мне нравится использовать его компилятор C ++ для стандартных программ C ++.

build.gradle выглядит следующим образом:

apply plugin: 'cpp'

model {
components {
main(NativeExecutableSpec) {
sources {
cpp {
source {
srcDir "src"}
}
}
}
}

binaries {
all {
if (toolChain in VisualCpp) {
cppCompiler.args "-IC:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.10240.0\\ucrt"linker.args "/LIBPATH:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.10240.0\\ucrt\\x86"}
}
}
}

Дополнительные параметры компилятора и компоновщика связаны с некоторыми изменениями в Visual Studio 2015 по сравнению с предыдущими версиями. Без опций вы получите компиляцию, которая не может найти corecrt.h, или ошибка компоновщика, которая не может найти libucrt.lib.

Надеюсь, это поможет вам быстро начать компиляцию C ++ с Visual Studio 2015 !!!

1
По вопросам рекламы [email protected]