1

しばらくこれに頭をぶつけているので、投稿すると思います。Project2が次のディレクトリ構造でProject1を使用/参照する2つのライブラリプロジェクトがあります。

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

どちらも図書館プロジェクトです。Project2の[プロパティ]>[構成プロパティ]>[C/C++]>[一般]>[追加のインクルードディレクトリ]にパスを含めました。読む..\Project1; %(AdditionalIncludeDirectories)

これで、Project1フォルダーに存在するファイルを#includesするファイルがProject2にあります。上記のようにパスを含めたにもかかわらず、エラーが発生します。

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つは、完全に削除して参照が見つからない場合でも、古いライブラリをフルネームで参照していることです。私はこれはおそらくこのエラーとは関係ありません。

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
4

3 に答える 3

3

最後に問題を修正しました。メモ帳で.vcxprojファイルを開き、古いパスのすべての参照を新しいパスに変更して保存しました。これで問題は解決しました。

これは、プロジェクトファイルが読み取り専用であり、VC2010が適切に更新していなかったことが原因でした。プロジェクトのプロパティを変更し続けたところ、希望どおりであることがわかりましたが、プロジェクトを閉じてロードし直すと、変更前の状態に戻りました。したがって、変更が適用されることはありませんでした。VS2010は、変更を保存または適用できないことを教えてくれませんでしたが、変更を受け入れて適用することはありません。

于 2012-12-11T23:25:43.023 に答える
3

これは古いトピックだと思いますが、将来の検索者が同じ特定のシナリオを持っている場合に備えて、ソリューションを追加したいと思いました。

私の場合、追加のインクルードディレクトリは、プロパティページのユーザーマクロとして定義されています([表示]、[プロパティマネージャー]、プロジェクトの右クリック、[プロパティ]からアクセスします)。ただし、値はそこで更新されましたが、プロパティページは実際には保存されませんでした(C ++のコマンドラインプロパティに正しいパス(!)が表示されていたとしても)。ソース管理から.propsファイルをチェックアウトして保存し、再構築する必要がありました。最後に、そのディレクトリ内のインクルードファイルが見つかりました。

于 2014-06-04T14:09:55.490 に答える
3

他の誰かがそれを必要とする場合に備えて、この答えを追加します。VS2015でも同じ問題が発生しました。

.vcxprojファイルを編集して解決しました。

その中で私は「パス」を検索します

次に、それにインクルードディレクトリパスを追加します。

于 2016-12-17T16:42:43.987 に答える