C++与gradle

Pau*_*est 29 c++ gradle

在Gradle 1.10发行说明http://www.gradle.org/docs/current/release-notes中我看到了提到的C++构建.

如何设置用gradle构建的C++项目?(没有IDE)

假设我有

ProjectFolder/hello.cpp
ProjectFolder/build.gradle
Run Code Online (Sandbox Code Playgroud)

hello.cpp:

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

int main(void) {
    puts("Hello World!!!");
    return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

build.gradle这个C++项目应该什么基础

更新:我已经查看了用户指南的第72章和提到的2岁的例子.它们并不简单,但更复杂.

有1个文件示例,包含6行.我没有接触C++ 10年,我只是想快速启动,例如GCC.(尚未找到)

Per*_*ler 28

  1. 把它放在build.gradle中

    apply plugin: 'cpp'
    executables {
       hello {}
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 把你的源文件放在src/hello/cpp/say_hello.cpp中

  3. 运行'gradle helloExecutable'

  4. 你的可执行文件应该构建为build/binaries/helloExecutable/hello

或者,如果您想要在src/foo/bar中添加源代码,请添加

sources {
    hello {
      cpp {
        source {
            srcDir "src/foo/bar"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Amn*_*hot 12

从Gradle 2.3开始,对本机组件构建进行了重大更改,executables并且libraries容器不再可用.引用Gradle 2.3发行说明:

...用于定义本机可执行文件和库的DSL已经发生了根本性的变化.已删除可执行文件和库容器,现在按类型将组件添加到模型注册表所拥有的组件容器中.另一个主要变化是组件的源集现在直接在组件定义中声明,而不是在源块上配置.

因此,与Gradle 2.3+兼容的更新后的Gradle代码如下所示:

model {
  components {
    hello(NativeExecutableSpec) {
      sources {
        cpp {
          source {
            srcDir "src/foo/bar"
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

您可以在此处了解有关Gradle用户指南中新模型的更多信息.

  • 我不明白为什么他们做了这些改变.对于那些刚刚开始学习gradle的人来说,这只是一个学习的噩梦. (6认同)