c – 从MSVC输出生成Makefile依赖项
发布时间:2020-12-16 06:52:03 所属栏目:百科 来源:网络整理
导读:使用GCC编译C/C++源时,可以使用标志-MMD -MT $@ -MF $(basename $@)在Makefile规则表单中创建其他依赖关系信息.我使我的Makefile脚本与GCC和MSVC工具链兼容,但我仍然在MSVC上生成依赖文件. 有一个标志/ showIncludes 输出源文件包括stdout中的信息,格式如下
使用GCC编译C/C++源时,可以使用标志-MMD -MT $@ -MF $(basename $@)在Makefile规则表单中创建其他依赖关系信息.我使我的Makefile脚本与GCC和MSVC工具链兼容,但我仍然在MSVC上生成依赖文件.
有一个标志/ showIncludes 输出源文件包括stdout中的信息,格式如下:注意:包括file:filename.尝试解析它(到目前为止成功)我得到以下makefile函数: msvc-dep-gen = echo $@: $< | sed -e "s/^.*$$/&/" >$(basename $@).d && $(1) /showIncludes | sed -e "/^Note: including file:/!d" -e "s/^Note: including file:s*(.*)$$/1/" -e "s////g" -e "s/ / /g" -e "s/^(.*)$$/t1 /" >> $(basename $@).d 其中参数$(1)是使用MSVC编译给定源文件的包装命令.这会生成依赖文件,但输出会被过滤掉,所以我会丢失所有警告和编译器产生的错误.关于如何防止这种情况的任何聪明的想法? 解决方法
如果你把它放在顶部带有set -e的shell脚本中,那么失败将导致退出非零代码,而Make会看到它.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |