2013-07-20 59 views
3

我想用崇高来编辑一个visual studio项目。 我有一个自定义生成:有没有一种方法可以将源文件从命令行添加到Visual Studio项目中?

{ 
    "cmd": ["c:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\MSBuild.exe"], 
    "working_dir": "${project_path:${folder:${file_path}}}/../Project" 
} 

但是,如果我添加新的文件,我还需要将它们包括在项目中。

有没有办法做到这一点从命令行,也许在编译时?

我正在用opengl使用C++;

我基本上使用opengl网站上提供的一个示例来建立一个项目。

然后我打开崇高文本中的项目文件夹,并使用自定义构建系统成功编译它。

但是,当我将新源文件添加到项目(* .h和* .cpp)时,出现链接错误。

当我在Visual Studio中构建时,出现同样的错误。

通过手动浏览并将它们添加到项目中,包含这些文件后,错误消失。

我想要的是一种自动将文件夹中的所有源文件添加到项目中的方法(通过命令行或通配符或其他方式)。

通过这种方式,我可以轻松地在崇高的vs2010项目中工作,添加新的源文件并构建项目。

或者也许已经有一个更好的工作流程呢?

+0

也许[包括从文件夹通过通配符](http://stackoverflow.com/a/2587401/205233)可能是一个解决方案,而不是每次修改项目。 – Filburt

+0

是的..使整个文件夹可见的项目正是我需要的。可悲的是,我感到你的链接中的信息有点不知所措。我仍然无法理解通配符是什么以及创建一个通配符的过程是什么。 –

+1

这并不容易,因为很多项目都需要特定的元数据才能运行。最后,项目文件只是XML,所以任何XML操作工具都应该做到这一点。基本上你需要注入一个''。或者使用如下通配符:''。 – jessehouwing

回答

6

您可以尝试修改.vcxproj文件,以将任何.h和.cpp文件包含在您的项目文件夹或下面的文件夹中。

在C++ VS项目,你可以试着改变你的.vcxproj文件中像这样的情况:

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <!-- rest of project file untouched --> 

    <!-- start of modified part --> 

    <ItemGroup> 
     <ClInclude Include="**\*.h" /> 
    </ItemGroup> 
    <ItemGroup> 
     <ClCompile Include="**\*.cpp" /> 
    </ItemGroup> 

    <!-- end of modified part --> 

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 
    <ImportGroup Label="ExtensionTargets"> 
    </ImportGroup> 
</Project> 

要知道,在稍后从内部VS将文件添加到您的项目将取代上述修改!

作为一种替代方案,您还可以创建一个外部项目文件,其中包含上述相同的<ItemGroup />元素,并将此项目文件包含到.vcxproj中。

如果您有兴趣,我会添加一个此替代方案的示例。

+0

这听起来很神奇..我现在就去试试吧 –

+0

It WORKED!非常感谢。 –

+0

总是乐于提供帮助;-)您可以使用MSBuild做出惊人的事情,并且像这样扩展VS项目只是一小部分。 – Filburt

相关问题