Hhu*_*hut 13 c++ visual-studio-2010 protocol-buffers visual-c++
我已经为我的Visual Studio项目文件添加了一个自定义构建步骤,该文件从.proto输入文件生成google protobuf .h/.cc文件.但我一直想知道只有原型文件的内容发生了变化才能开始编译?
有没有办法从自定义构建步骤告诉VisualStudio?将proto文件集成到visual studio构建解决方案中的最佳方法是什么?
目前,在每次构建时都会更新.proto文件,然后还会更新输出.h/.cc文件的时间戳...然后会重新编译从中依赖的所有内容.有没有更好的方法,而仍然直接从视觉工作室构建它们?
wma*_*rak 15
请按照这些详细说明指定自定义生成工具.
考虑到您的proto文件与标准项目配置中的.h/.cpp文件一起存在,以下是要在自定义构建工具中插入的值:
Command Line:
path\to\protoc --proto_path=$(ProjectDir) --cpp_out=$(ProjectDir) %(FullPath)
Outputs:
$(ProjectDir)%(Filename).pb.h;$(ProjectDir)%(Filename).pb.cc
Run Code Online (Sandbox Code Playgroud)
请注意项元数据宏的使用,它替换了一些不推荐使用的宏(如$(InputDir)和$(InputName)).
现在,只有当输入文件(即%(FullPath))比"输出"更新时,才会运行Protocol Buffers编译器.
也许这有帮助。特别是看看 Igor Zavoychinskiy 的帖子:
这个棘手问题的解决方案实际上很简单:在输出部分中,您应该指定完整路径。这在任何地方都没有明确说明,但如果没有此检查器,就无法找到文件,因此假设它们不存在。例如,对于 protobuffers 编译输出部分将如下所示:
$(InputDir)\$(InputName).pb.cc;$(InputDir)\$(InputName).pb.h
和(也许?)kmote00:
...底线:我只需确保我的“Outputs”条目与(用户定义的)“OutputFile”属性中的默认值完全匹配。(值得庆幸的是,这也消除了两次构建的需要,这是我之前忍受的另一个烦恼。)
归档时间: |
|
查看次数: |
8475 次 |
最近记录: |