2012-12-11 74 views
1

我在这一段时间里猛撞我的头,所以我想我会发布。我有两个库项目,Project2在以下目录结构中使用/引用Project1。'在visual studio 2010中的其他包含目录'不起作用

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

两者都是图书馆项目。我已经在Project2的属性>配置属性> C/C++>常规>'添加包含目录'中包含路径。它读取..\Project1; %(AdditionalIncludeDirectories)

现在Project2中有一个文件,其中#includes文件存在于project1文件夹中。具有Inspite包括路径上面仍然有错误出现:

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 
+0

尝试在项目设置中使用绝对路径而不是相对路径。如果绝对路径有效,那么你的亲属必须是不正确的。 – AnT

+0

当你使用假名的时候很不清楚。不要忘记在包含嵌入空格的路径中放置双引号。 –

+0

@AndreyT这是个好主意,我只是试了一下,但同样的错误依然存在。 – zar

回答

3

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

这是由于项目文件是只读的,而VC2010没有正确更新。我一直在项目属性中进行更改,我可以通过回读他们是我想要的,但是当我关闭项目并加载它时,它回到了变更之前。所以这些变化从未得到应用。 VS2010没有告诉我它不能保存或应用更改,但会接受它们,并且从不应用它们!

3

我意识到这是一个古老的话题,但认为我会加入我的解决方案,以防未来的搜索者具有相同的特定场景。

在我的情况下,附加包含目录被定义为属性页面中的用户宏(通过视图,属性管理器访问,然后右键单击项目属性)。但是,虽然值已更新,但属性页实际上并未保存(即使C++命令行属性显示了正确的路径(!))。必须从源代码管理中检出.props文件并保存,然后重新生成 - 最后找到该目录中的包含文件。

2

添加此答案,以防万一别人需要它。 我在VS 2015有同样的问题。

我通过编辑.vcxproj文件解决了它。

其中我搜索“路径”

然后将您的包含目录路径添加到它。

相关问题