【发布时间】:2015-11-20 04:00:56
【问题描述】:
所以,我要上这门课.... wince
我的日常工作非常技术性,但我是一个完整的 Visual Studio 新手。
我有一个 Visual Studio Express 2013 项目,可以在我的本地系统上正常运行/编译,但我必须让它在 Visual Studio Online 中构建,这样我才能与班上的其他人分享它。
我的程序的第一行是:
#include "stdafx.h"
当我尝试在在线构建环境中构建我的程序时,我收到一个错误:
Error C1083: Cannot open source file: '..\..\..\..\..\path_to\file_on\my_local\computer\Project\stdafx.cpp': No such file or directory
stdafx.cpp 和 .h 文件与 main.cpp 文件一起位于源代码管理的项目文件夹中,并且在克隆项目时早先显示在构建日志中。但是根据#include directive docs,它看起来的第一个位置应该是 main.cpp 文件所在的目录?
查看 .vcxproj 过滤器文件的 XML 内容,我看到项目中的每个文件都有一个如下所示的条目:
<ItemGroup>
<Text Include="..\..\..\..\..\path_to\file_on\my_local\computer\Project\ReadMe.txt" />
</ItemGroup>
我想知道这是否相关,和/或以某种方式覆盖#include 的正常行为。但是,我找不到在 Visual Studio 中编辑它们的方法(我的意思是,好吧,我可以在 Notepad++ 或其他东西中打开文件,但这不是“正确”的方式......可以吗?)
那么,有没有一种(最好是简单的)方法来告诉我的 VS 项目只查看“。”东西?
【问题讨论】:
-
没有解决方案,但我确实有一个便宜的技巧:重新创建项目而不启用预编译头文件。整个
stdafx问题消失了。 -
要么删除 stdafx.cpp 并将其重新添加到项目中(小心;它具有自定义构建选项来构建预编译的标头,因此您需要先复制它们),手动编辑路径XML(可能最简单)或尝试创建一个新项目并重新添加您的源代码。
-
在你的项目上右键,从VS中选择“属性”,点击“配置属性”下的“VC++目录”,可以为包含路径设置“包含目录”。更改反映在 .vcxproj 中。签入更改,然后尝试构建是否可以成功完成。
-
感谢 cmets。我最终使用 Notepad++ 手动编辑了 vcxproj 文件,删除了长的相对路径。现在工作正常。谢谢您的帮助! :-)
标签: c++ msbuild azure-devops stdafx.h