c++ - 适用于 C++ 的其他包含路径和链接器选项 Gradle

标签 c++ gradle build-system conan

我试图使用 Gradle 编译 C++ 项目,但我找不到在编译时声明我想要的附加包含路径以及在链接时声明哪些附加库的方法。 我见过涉及项目内部 model { } 的解决方案(我不太记得了)。 (但是没有用,Gradle 一直提示不存在的函数。)

似乎还不是将 Conan 依赖项添加到 Gradle 项目的清晰或简单的方法。这让我自己编译库,然后添加到构建系统,但同样,我找不到方法。

我一直在文档中寻找答案,但我找到的只是添加 Maven 依赖项(但我猜 GLFW、GLEW 和 DearIMGUI 不在 Maven 上......)。

有什么怪癖吗?我怎样才能注册额外的包含/链接文件?

我的build.gradle.kts:

plugins {
    id("cpp-application")
}

tasks.register("runDebug") {
    doLast {
        exec {
            executable = "./build/exe/main/debug/my-app.exe"
        }
    }
}

最佳答案

经过5个小时的搜索,我终于找到了使用Gradle构建QT应用程序的解决方案。感谢@s-kadakov。

plugins {
    id 'cpp-application'
    id 'cpp-unit-test'
}

application {
    targetMachines.add(machines.linux.x86_64)
}

tasks.withType(CppCompile).configureEach {
    compilerArgs.add '-fPIC'
    includes {
        '/usr/include/qt'
    }

    compilerArgs.addAll toolChain.map { toolChain ->
        if (toolChain in [ Gcc, Clang ]) {
            return ['-O2', '-fno-access-control']
        } else if (toolChain in VisualCpp) {
            return ['/Zi']
        }
        return []
    }
}

tasks.withType(LinkExecutable).configureEach {
    linkerArgs.add '-v'

    linkerArgs.add '-lQt5Core'
    linkerArgs.add '-lQt5Widgets'
    linkerArgs.add '-lQt5Gui'

}

希望这对您有帮助。

关于c++ - 适用于 C++ 的其他包含路径和链接器选项 Gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61203429/

相关文章:

linux - 具有多个命令的 Sublime Text 构建系统

makefile - 在 Xcode 8.2.1 中创建 Xcode 项目模板

javascript - 如何在 Gulp 任务中正确读取多个文件?

c++ - 十六进制编辑器如何如此快速地显示数据?

C++访问私有(private)类成员

java - 如何使用 gradle test 将命令行参数传递给测试?

java - 如何在Gradle useTestNG中使用testng参数

c++ - 搜索二叉搜索树后输出错误

c++ - 在 MinGW/MSYS 上编译 GCC 4.x.x 失败

android - 禁用 InjectMappingFiledId 任务