是否存在MSVC的依赖关系生成标志,如gcc的-M

Art*_*yom 10 dependencies gcc visual-c++

是否存在MSVC的依赖关系生成标志,如gcc的-M标志.

我用过的每个C++编译器都有这种标志.如何使用MSVC cl编译器自动创建依赖项.

  1. 我只对最新的编译器版本感兴趣,即MSVC9或更高版本,但如果它适用于MSVC8,它也很好.
  2. 如果有内置的外部工具来做这件事(我的意思是,不是cl),那也没关系

小智 6

这个批处理脚本可能是你和我一直在寻找的,虽然我还没有测试过.

将文件作为%1传递,并将路径包含为%2

@ECHO %1: \
@FOR /F "tokens=1,2,3,*" %%A IN ('cl /nologo /c %1 /Zs /showIncludes /I%2') DO @IF NOT "%%D"=="" echo %%D \
Run Code Online (Sandbox Code Playgroud)

输出:

filename.c: \
header.h \
someotherheader.h
Run Code Online (Sandbox Code Playgroud)


Pau*_*l R 1

您也许可以使用:

/showIncludes show include file names
Run Code Online (Sandbox Code Playgroud)

尽管之后您可能还需要一些额外的过滤才能获得您需要的格式。