我在这个问题上敲了一段时间,所以我想我会发布。我有两个库项目,其中 Project2 在以下目录结构中使用/引用 Project1。
c:\code\Library\Project1
c:\code\Library\Project2
两者都是图书馆项目。我已将 Project2 中的路径包含在 Properties>Configuration Properties>C/C++>General>'Additonal Include Directories' 中。它读到..\Project1; %(AdditionalIncludeDirectories)
现在 Project2 中有一个文件,其中 #includes 文件存在于 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
我正在做的是从项目文件夹中删除最后一个版本名称(并再次将它们重新链接在一起),但这已成为一场噩梦!有什么建议么?
ps 我对此做了很多研究,这似乎与目录的长度有关,但我认为我在限制方面做得很好。以前较长的文件夹名称有效而较短的文件夹名称无效,这表明长度不是问题。
添加在:
以下是我在使用实际文件名时遇到的实际错误:问题之一是它仍然以全名引用旧库,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