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

jrk*_*jrk 4 windows build wdk

添加多个目录的源文件(例如../../source.cpp或../../../somewhere_else/source.cpp,而不仅仅是source.cpp或../source.cpp) WDK/DDK构建中的SOURCES =声明会产生以下错误:

Ignoring invalid directory prefix in SOURCES= entry
Run Code Online (Sandbox Code Playgroud)

是否可以在构建中包含远程源文件?

jrk*_*jrk 5

不可能直接这样做.build显式设计仅用于处理sources文件的相同或父目录中的源代码.它不能使用来自任意位置的源文件.特别是,它的依赖跟踪系统似乎无法解析和跟踪远程文件,因此它明确检查并强制所有文件都是本地的.

有两种常见的解决方案:

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

  2. 为每个远程源文件放置一个本地存根#include "../../remote_source.cpp,然后将此本地存根添加到SOURCES=列表中.这将工作,但build/ nmake不会跟踪的依赖性remote_source.cpp.如果remote_source.cpp改变,你将不得不要么touch本地代理源,或以其他方式强制重建(删除本地代理OBJ,运行build-cZ,或其他).