Подтвердить что ты не робот

С++ с gradle

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

Как настроить проект С++ для сборки с помощью 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 для этого проекта С++?

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

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

4b9b3361

Ответ 1

  • поместите это в build.gradle

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

  • run 'gradle helloExecutable'

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

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

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

Ответ 2

Начиная с 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 руководстве пользователя здесь.

Ответ 3

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

MyProject

MyProject\ЦСИ

MyProject\SRC\main.cpp

MyProject\build.gradle

main.cpp - это просто программа Hello world С++.

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

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.

Надеюсь, это поможет вам быстро начать сборку С++ с помощью Visual Studio 2015.