Windows 是否可以使Microsoft build.exe包含来自远程目录的源?

Windows 是否可以使Microsoft build.exe包含来自远程目录的源?,windows,build,wdk,Windows,Build,Wdk,将源文件添加到WDK/DDK内部版本中的SOURCES=声明中时,会产生以下错误: Ignoring invalid directory prefix in SOURCES= entry 是否可以在生成中包含远程源文件?无法直接执行此操作构建明确设计用于处理 源代码位于源文件的同一目录或父目录中。它不能使用来自任意位置的源文件。特别是,它的依赖项跟踪系统似乎无法解析和跟踪远程文件,因此它显式地检查并强制所有文件都是本地文件 有两种常见的解决方案: 将远程代码构建为单独的库(通过同一Build项

将源文件添加到WDK/DDK内部版本中的SOURCES=声明中时,会产生以下错误:

Ignoring invalid directory prefix in SOURCES= entry

是否可以在生成中包含远程源文件?

无法直接执行此操作<代码>构建明确设计用于处理 源代码位于
源文件的同一目录或父目录中。它不能使用来自任意位置的源文件。特别是,它的依赖项跟踪系统似乎无法解析和跟踪远程文件,因此它显式地检查并强制所有文件都是本地文件

有两种常见的解决方案:

  • 将远程代码构建为单独的库(通过同一
    Build
    项目中的另一个子项目/目录,或使用独立的构建步骤)

  • 为每个
    #包含的远程源文件放置一个本地存根“../../remote_source.cpp
    ,并将此本地存根添加到
    SOURCES=
    列表中。这将起作用,但
    build
    /
    nmake
    不会跟踪
    remote\u source.cpp
    中的依赖项。如果
    remote\u source.cpp
    发生更改,您必须触摸本地代理源,或以其他方式强制重建(删除本地代理obj,使用
    -cZ
    运行
    build
    ,或以其他方式)


  • 另一种方法是使用source.inc包含这些文件。

    我不想重提一个超旧的主题,但我也遇到了这个问题

    另一种替代方法是在内部创建另一个源文件,该文件单独构建远程源的对象文件,因此基本上是一个名为的文件,并为其指定相同的中间目录

    然后将“dirs”文件添加到原始目录中,并在其中指定该远程文件夹。然后通过向原始源文件添加类似以下内容,直接链接到目标文件:

    $(TARGETLIBS) = $(PROJECT_OBJ_ROOT)\$(O)\source.obj
    
    这样,您不必编译为lib,但build将其视为一个lib和链接,而不进行任何依赖性检查或位置关心

    如果给它们相同的中间目录和原始源文件名(source.cpp),自然会遇到一些问题。