VS2013 C++;自定义生成工具不工作 我对冗长的文本表示歉意,但在C++项目中,使用VS2013的自定义生成工具功能一直存在一些问题。我想获取一个项目的“resource.h”文件并生成一个输出文件,出于这些目的,我们将其称为“resource.out”

VS2013 C++;自定义生成工具不工作 我对冗长的文本表示歉意,但在C++项目中,使用VS2013的自定义生成工具功能一直存在一些问题。我想获取一个项目的“resource.h”文件并生成一个输出文件,出于这些目的,我们将其称为“resource.out”,c++,visual-studio-2013,custom-build-step,C++,Visual Studio 2013,Custom Build Step,我编写了一个工具,它接受两个命令行参数——“resource.h”文件和“resource.out”文件。我首先在一个简单的应用程序向导生成的文档/视图应用程序MFCAPApplication1上尝试了这一点。我添加了文件“resource.x”作为虚拟文件,以便使用自定义构建工具进行“编译”。在该特定文件上,我将“项目类型”设置为“自定义构建工具”,配置该工具时,我有以下内容: Command Line: "<path-to-tool>" resource.h .\res\reso

我编写了一个工具,它接受两个命令行参数——“resource.h”文件和“resource.out”文件。我首先在一个简单的应用程序向导生成的文档/视图应用程序MFCAPApplication1上尝试了这一点。我添加了文件“resource.x”作为虚拟文件,以便使用自定义构建工具进行“编译”。在该特定文件上,我将“项目类型”设置为“自定义构建工具”,配置该工具时,我有以下内容:

Command Line: "<path-to-tool>" resource.h .\res\resource.out
Outputs: .\res\resource.out
Additional Dependencies: resource.h
第二行是自定义构建工具的输出。所以在这个简单的测试中,一切都按照我的预期进行

现在我正在我的真实代码上尝试同样的事情。我有很多项目的解决方案,一个项目负责获取另一个项目的资源并生成dll。目录结构如下所示:

Main
    MainApp
        resource.h
    MainRes
        MainRes.vcxproj references "..\MainApp\resource.h"
因此,MainRes项目引用MainApp项目中的资源文件。在我的MFCAPApplication1实验成功之后,我将“resource.x”添加到主应用程序中,并在MainRes中引用它:

Main
    MainApp
        resource.h
        resource.x
    MainRes
        MainRes.vcxproj references "..\MainApp\resource.h"
        MainRes.vcxproj references "..\MainApp\resource.x"
在MainRes项目中,我选择了“resource.x”,并通过上下文属性将其“Item Type”设置为“Custom Build Tool”,并将其配置为:

Command Line: "<path-to-tool>" ..\MainApp\resource.h ..\MainApp\res\resource.out
Outputs: ..\MainApp\res\resource.out
Additional Dependencies: ..\MainApp\resource.h
因此,我认为这可能是一个上下文问题,并将配置更改为:

Command Line: "<path-to-tool>" resource.h .\res\resource.out
Outputs: .\res\resource.out
Additional Dependencies: resource.h
命令行:“resource.h.\res\resource.out
输出:。\res\resource.out
其他依赖项:resource.h
我收到了同样的警告。我不明白我做错了什么。我将“输出”设置为一个文件,并且在命令行中有输出文件。在这一点上提前感谢任何人的帮助。我已经在这上面花了太多时间了

  • 史蒂夫

    • 所以。。。我最终发现,出于某种原因,使用编辑器修改自定义构建工具配置实际上是在错误配置下将数据保存到vcxproj中。尽管我在编辑器中正确设置了配置和平台,但它在文件中写入了不同的配置。谁知道这是为什么,但从中吸取的教训-始终检查您的vcxproj文件

      1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(170,5): warning MSB8018: No outputs specified for item "..\MainApp\resource.x". Its custom build command will be skipped.
      
      Command Line: "<path-to-tool>" resource.h .\res\resource.out
      Outputs: .\res\resource.out
      Additional Dependencies: resource.h