2012-05-20 133 views
2

我的SVN存储库中有一些视频文件以及我的应用程序的源代码。签出后,Visual studio项目使用cmake构建。 我的代码需要加载视频文件,并且在从Visual Studio运行应用程序时运行良好 - 但是当release/debug文件夹中的exe文件被双击时,它会崩溃,因为相对路径不再正确。当从Visual Studio中运行它时,.sln文件所在的文件夹被视为相对路径的根目录。Visual Studio相对路径

如何从代码中引用视频文件,使应用程序能够在Visual Studio中运行以及如果双击release/bin文件夹中的exe文件而不复制视频? (它们相当大)

我需要这样做,因为我必须交出我的应用程序,以便它可以编译并运行,并且可以在没有Visual Studio的情况下执行。

回答

4

您可以更改项目的设置,使IDE的行为与双击可执行文件相匹配,然后修复相对路径。

对于VS10/VS11,在项目的属性页面中,顶部从Configuration:列表中选择All Configurations

然后选择Configuration Properties - >Debugging并设置Working Directory$(OutDir)

要注意的是在比$(OUTDIR)以外的目录中运行从命令提示符可执行文件仍然会失败。

+0

我可以编辑CMakeLists.txt莫名其妙地设置visualstudio来做到这一点? – Mat

+0

不容易。有关信息,请参阅[本常见问题解答](http://www.cmake.org/Wiki/CMake_FAQ#Can_CMake_set_the_Debugging.2FWorking_Directory_property_in_Visual_Studio_projects.3F)。 – Fraser

+0

请注意,与C++项目不同,[C#项目中不允许使用相对路径或宏](https://connect.microsoft.com/VisualStudio/feedback/details/618256/relative-path-or-macros-not-allowed-在-C-项目调试工作目录)。 –