C++ 如何为资源编译器设置输出文件夹

C++ 如何为资源编译器设置输出文件夹,c++,visual-c++,compiler-construction,makefile,C++,Visual C++,Compiler Construction,Makefile,我正在尝试使用make文件在命令行编译的应用程序中使用资源文件(*.rc)。我发现,即使当前目录是输出目录,而且cl似乎正在将其对象文件构建到此输出目录,rc编译器也只会将其output.res文件放在与.rc文件相同的位置。我如何灵活地告诉rc将其输出文件放在不同的位置,而无需手动“移动”操作 i、 e: 这将把source.obj文件放在(当前)c:\foo\bar\目录中: c:\foo\bar>cl c:\foo\src\source.cpp c:\foo\bar>rc c

我正在尝试使用make文件在命令行编译的应用程序中使用资源文件(*.rc)。我发现,即使当前目录是输出目录,而且cl似乎正在将其对象文件构建到此输出目录,rc编译器也只会将其output.res文件放在与.rc文件相同的位置。我如何灵活地告诉rc将其输出文件放在不同的位置,而无需手动“移动”操作

i、 e:

这将把source.obj文件放在(当前)
c:\foo\bar\
目录中:

c:\foo\bar>cl c:\foo\src\source.cpp
c:\foo\bar>rc c:\foo\res\resource.rc
然而,这将在
c:\foo\res\
目录中放置一个.res文件:

c:\foo\bar>cl c:\foo\src\source.cpp
c:\foo\bar>rc c:\foo\res\resource.rc

主要的问题是,很难找到让makefile脚本执行res文件编译后移动的方法。有没有办法更改输出文件夹?

可能是对您问题的回答:
这是我为资源编译器准备的NMAKE行:

$(RC) -fo$@ $**
它将资源文件放在我指向它的地方


然而,似乎目录必须事先存在,否则RC会沮丧地把手举到空中。也许我误解了这个问题,但我是对的,这是相当蹩脚的行为。在这种情况下,根据执行顺序,您可能需要在makefile中使用MKDIR命令。

这是我得到的最接近的命令,但对于使用搜索找到并使用makefile$<变量访问的文件无效。如果我理解正确,您在使用$<为rc运行命令构造文件名时会遇到一些问题(第一个先决条件)变量?理想情况下,我可以为rc命令设置输出文件文件夹。第二个最好的方法是我可以找到输出文件名(和路径)从rc命令自动生成该文件名到当前文件夹的完整路径。现在我已经硬编码了输出文件名和路径'-fo.\version.res',但它将为找到的每个rc文件使用该文件名。您可以使用$(dir$)是否可以级联多个指令?我尝试使用
\$($(notdir$