C++与格拉德尔

C++ with gradle

本文关键字:格拉德 C++      更新时间:2023-10-16

在 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;
}

这个C++项目的基本build.gradle应该是什么

更新:我已经看过用户指南的第 72 章和提到的 2 年前的例子。他们不会让它变得更简单,而是更复杂。

有 1 个 6 行的文件示例。我已经 10 年没有接触C++了,我只是想快速开始,例如 GCC .(尚未找到)

  1. 把它放在build.gradle中

    apply plugin: 'cpp'
    executables {
       hello {}
    }
    
  2. 将源文件放入 src/hello/cpp/say_hello.cpp

  3. 运行 'gradle helloExecutable'

  4. 你的可执行文件应该构建为构建/二进制文件/helloExecutable/hello

或者,如果你想让你的源在src/foo/bar中,然后添加

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

从 Gradle 2.3 开始,原生组件构建发生了重大变化,executableslibraries容器不再可用。引用 Gradle 2.3 发行说明:

。用于定义本机可执行文件和库的 DSL 具有 从根本上改变了。可执行文件和库容器具有 已删除,组件现在按类型添加到组件中 模型注册表拥有的容器。另一个重大变化是 组件的源集现在直接在 组件定义,而不是在源上配置 块。

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

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

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

这是

另一个答案。我正在使用 Gradle 2.4.7。我的源代码是标准C++,如 Windows 上的以下目录结构所示:

我的项目

我的项目\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 的链接器错误。

希望这能帮助你快速开始使用Visual Studio 2015进行C++编译!!