首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将编译错误打印到cmake中的stdout

将编译错误打印到cmake中的stdout
EN

Stack Overflow用户
提问于 2021-05-10 11:05:43
回答 1查看 19关注 0票数 0

我正在寻找一种在java编译期间检测错误的方法,然后是在stdout中打印错误消息的方法,而不是将其重定向到文件中。

代码语言:javascript
复制
function(generate_swagger_code spec_path lang package_name)
  set(target_dir ${CMAKE_CURRENT_BINARY_DIR}/swagger)
  get_filename_component(fname_noext ${spec_path} NAME_WE)
  add_custom_target(generate_swagger_${fname_noext} ALL
    COMMAND ${CMAKE_COMMAND} -E make_directory ${target_dir}
    COMMENT "Starting swagger autogeneration in ${target_dir}"
    COMMAND java
      -jar ${SWAGGER_CODEGEN_CLI} generate
      -i ${spec_path}
      -l ${lang}
      -DpackageName=${package_name}
      -o ${target_dir} &> ${target_dir}/autogenerate.log
    VERBATIM
  )
endfunction(generate_swagger_code)
EN

回答 1

Stack Overflow用户

发布于 2021-05-10 11:27:41

Basic linux说2>&1会将标准错误重定向到标准输出。没有可以传递给javac的选项,所以这是您唯一的选择。

检测失败很简单;javac命令的返回值将返回一个非零值;这是基本的cmake内容,任何教程都会介绍如何提取它。

你的问题标题涉及“编译错误”,但你的代码不是编译java代码,而是运行VM来执行swagger_codegen_cli,这与java代码略有不同。SWAGGER_CODEGEN_CLI应用程序可能没有正确注册退出代码。如果真是这样,你也无能为力。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67464288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档