构建C/C++代码时的Gradle编译器输出
我在
Linux(gcc)和Windows(VS10)下使用gradle构建C/C++代码,就像它在
Building native software documentation的gradle中描述的那样.
构建过程很好,我可以启动我的应用程序.如果在构建过程中发生错误,您可以在控制台上看到编译器输出,如警告和错误.此输出另外写入文件:build / tmp /“TaskName”/output.txt. 我正在寻找一种方法来显示编译器输出,如控制台上的警告或错误,即使构建成功. 可以使用更高的日志级别启动gradle构建:gradle build –info,但是我不想要这么多的附加输出. 我已经在build.gradle文件中尝试了类似下面的代码,仅为所有编译任务设置日志级别,但它没有任何区别,因为我将使用:gradle build启动gradle构建. tasks.whenTaskAdded { task -> if (task instanceof CCompile || task instanceof CppCompile) { logging.setLevel(LogLevel.INFO) } } 我的问题: 有没有办法在没有开销的情况下在控制台上获取编译器错误/警告?是否有可能为某些任务设置LogLevel?如果是这样,上面的代码有什么问题? 任何帮助将不胜感激. 解决方法
我现在解决了,因为已经存在的
answer Johan Engblom指出了我正确的方向.我没有使用平台相关的cat outputfile.txt(Linux),而是使用gradle的功能,以便它可以在Windows或Linux上运行.确保该解决方案在编译时不输出编译器输出,但在作业完成后输出它.
要在编译和链接任务之后添加任务,我添加以下内容(如果构建失败或成功,将执行此任务). tasks.withType(InstallExecutable) { finalizedBy showCompilerOutput } 如果你只想在构建成功时执行showCompilerOutput,你可以使用: build.finalizedBy showCompilerOutput 任务showCompilerOutput用于显示我在问题中提到的文件的输出.因此,它构建了一个文件树,指向我提到的文件:output.txt. task showCompilerOutput { dependsOn showCompilerOptions doLast { println 'n-----------------------------------------------------n' println 'Compiler output:' FileTree tree = fileTree('build').include('**/output.txt') // Iterate over the contents of a tree tree.each {File file -> println 'Content of file ' + file + ':n' println file.text println '------n' } } } 此任务还依赖于另一个名为showCompilerOptions的任务,该任务执行相同但对于具有编译器选项的文件:options.txt. task showCompilerOptions { doLast { println 'n-----------------------------------------------------n' println 'Compiler options:' FileTree tree = fileTree('build').include('**/options.txt') // Iterate over the contents of a tree tree.each {File file -> println 'Content of file ' + file + ':n' println file.text println '------n' } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |