只是想知道是否有与视觉工作室一起提供的'makedepends'等效物,我可以使用nmake.有人知道吗?
使用 GCC 编译 C/C++ 源代码时,可以使用 flags 以 Makefile 规则形式创建附加依赖信息-MMD -MT $@ -MF $(basename $@).d。我使 Makefile 脚本与 GCC 和 MSVC 工具链兼容,但我仍然在 MSVC 上生成依赖文件方面遇到困难。
有一个标志/showIncludes
以以下形式在 stdout 中输出源文件包含信息Note: including 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/^\(.*\)$$/\t\1 \\/" >> $(basename $@).d
Run Code Online (Sandbox Code Playgroud)
其中参数 $(1) 是使用 MSVC 编译给定源文件的包装命令。这会很好地生成依赖文件,但输出会被过滤掉,因此我会丢失编译器产生的所有警告和错误退出。关于如何防止这种情况有什么聪明的想法吗?