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