如何为在 .props 文件中声明的非本机 VC 编译器 (GCC) 实现 MSBUILD 文件跟踪功能 (跟踪器.ex
How to implement MSBUILD file tracking feature (Tracker.exe) for a not native VC compiler (GCC) declared in .props files?
在互联网上搜索了几个小时后,我找不到任何有关此的信息或文档。有谁知道是否有办法完成这项工作?
如果能得到正确方向的提示,那就太好了。
提前感谢,
亚历克斯
您必须编写将使用文件跟踪进行增量构建的任务。.NET API似乎在这里:FileTracker类
如果我是你,我会尝试反汇编Microsoft.Build.CPPTasks.Common.dll汇编 - 类Microsoft.Build.CPPTasks.TrackedVCToolTask以了解它是如何工作的。
因此,这是我的即兴想法,它是如何工作的:
- 我认为 Tracer.exe 启动子进程(您的工具作为暂停的进程)。
- 然后它修补 kernel32.dll文件 winapi 以跟踪所有读写操作(所以我认为他们修补了 CreateFile 和 CloseHandle)。
- 然后恢复进程 进程
- 完成后,您应该获得子进程使用的文件列表。 将
- 用于将输出文件生成到日志文件中的输入文件的文件列表写入日志文件。
- 第二次调用任务时,您可以在构建中进行优化。因为您现在有文件映射,所以您应该能够决定是调用工具进行给定输出还是跳过它。如果输出文件时间戳比所有输入文件更新,并且编译设置都没有更改(项目文件时间戳 - 或更复杂的东西),您可以跳过它。
文件跟踪
相关文章:
- WinDbg 不显示某些小型转储文件的完整堆栈跟踪
- mingw32-make 使用"MinGW Makefiles"生成器跟踪 CMAKE 无法将可执行文件链接到对象库
- 跟踪多个文件中一系列字符的频率
- 当外部源代码中发生异常时,无法正确使用自创建的小型转储文件的堆栈跟踪
- Makefile仅跟踪第一个文件
- 使用来自视频文件或网络摄像头的 Kinect 面部跟踪
- 通过Visual Studio跟踪更改文件
- 在没有PDB文件的情况下,是否可以在Windows上获得堆栈跟踪?如果是,如何
- 如何将linux demon/服务的堆栈跟踪保存到外部文件中
- 如何为在 .props 文件中声明的非本机 VC 编译器 (GCC) 实现 MSBUILD 文件跟踪功能 (跟踪器.ex
- 如何将 gdb 的完整堆栈跟踪通过管道传输到文件?
- 如何通过在visual C++中隐藏头文件来跟踪C程序
- C++/Qt:跟踪文件系统的更改
- Git如何忽略未跟踪的CDT文件
- 如何在c++中使用JNI将异常堆栈跟踪重定向到日志文件
- 我如何在我的日志文件中写一些跟踪在c++
- Valgrind内存泄漏错误的文件跟踪
- 用于从堆栈转储和.elf文件中提取FreeRTOS/ARM/ c++堆栈跟踪的工具
- 如何使用 gdb 从核心文件中获取 lua 堆栈跟踪
- 如何用c++跟踪我的机器中的文件