C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了构建C/C++代码时的Gradle编译器输出大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_489_0@
@H_489_0@ @H_674_4@ 我在 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'
      }
   }
}
@H_489_0@

大佬总结

以上是大佬教程为你收集整理的构建C/C++代码时的Gradle编译器输出全部内容,希望文章能够帮你解决构建C/C++代码时的Gradle编译器输出所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:cc++gradle代码构建编译器输出
猜你在找的C&C++相关文章
其他相关热搜词更多
phpJavaPython程序员load如何string使用参数jquery开发安装listlinuxiosandroid工具javascriptcap