Visual Studio 2010中的“其他包含目录”不起作用

时间:2012-12-11 21:56:00

标签: c++ visual-studio visual-studio-2010

我正在敲打这个一段时间,所以我想我会发布。我有两个库项目,其中Project2在以下目录结构中使用/引用Project1。

c:\code\Library\Project1
c:\code\Library\Project2

两者都是图书馆项目。我在Project2的属性>配置属性> C / C ++> General>'Additonal Include Directories'中包含了路径。它显示为..\Project1; %(AdditionalIncludeDirectories)

现在Project2中有一个文件,#include包含在project1文件夹中的文件。尽管已经包含上述路径,但它仍然会出现错误:

1>c:\code\Library\Project2\MyTestDlg.cpp(6): fatal error C1083: Cannot open include file: 'GraphCtrl.h': No such file or directory

奇怪的是,如果我不更改原始项目名称,类似的设置将起作用。这些项目最初位于文件夹中,可以很好地链接。

c:\code\Library\Project1 1.0.0
c:\code\Library\Project2 1.0.0

我正在做的是从项目文件夹中删除最后的版本名称(并将它们重新连接在一起),但这已成为一场噩梦!有什么建议吗?

p.s我对此进行了相当多的研究,这似乎与目录的长度有关,但我认为我在极限情况下很好。事实上,以前较长的文件夹名称可以正常工作而短路则不会,它显示长度不是问题。

附加组件:

以下是我用实际文件名得到的实际错误:其中一个问题是它仍以某个方式引用了全名为GraphCtrlLib 1.0.0.0的旧库,即使我已完全删除它并且找不到更多的参考。我这可能与此错误无关。

1>Build started 12/11/2012 5:16:02 PM.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.Targets(1200,9): warning : The referenced project '..\Graph\Graph.vcxproj' does not exist.
1>InitializeBuildStatus:
1>  Touching "Debug\ViewerLib.unsuccessfulbuild".
1>ClCompile:
1>  All outputs are up-to-date.
1>  OpenViewerDlg.cpp
1>c:\code\libraries\viewerlib\viewerdlg.cpp(6): fatal error C1083: Cannot open include file: 'GraphCtrl.h': No such file or directory

3 个答案:

答案 0 :(得分:3)

最后解决了这个问题。我在记事本中打开了.vcxproj文件,并将旧路径的所有引用更改为新路径并保存。这解决了问题。

这是因为项目文件是只读的,VC2010没有正确更新。我一直在对项目属性进行更改,我可以通过回读看出它们是我想要的但是当我关闭项目并加载它时,它又回到了更改前的状态。因此,这些变化从未得到应用。 VS2010没有告诉我它无法保存或应用更改但会接受它们并且从不应用它们!

答案 1 :(得分:3)

我意识到这是一个古老的主题,但我想我会添加我的解决方案,以防将来的搜索者拥有相同的特定情况。

在我的情况下,附加包含目录被定义为属性页面中的用户宏(通过View,Property Manager访问,然后右键单击项目,属性)。但是虽然值已在那里更新,但实际上并未保存属性页(即使C ++,Command Line属性显示正确的路径(!))。不得不从源代码控制中检出.props文件并保存,然后重建 - 最后找到该目录中的包含文件。

答案 2 :(得分:3)

添加此答案,以防万一其他人需要它。 我在VS 2015中遇到了同样的问题。

我通过编辑.vcxproj文件解决了这个问题。

在其中我搜索"路径"

然后将include目录路径添加到它。