18

C++のVisualStudio2012で最初の大きなプロジェクトを開始しました。ソースファイルをフォルダーに構造化しますが、Windowsエクスプローラーのように実際のフォルダーを作成できる場所が見つかりません。これが私の質問です。

プロジェクトに実際のフォルダを作成するにはどうすればよいですか?

4

2 に答える 2

25

IDEには、そのためのコマンド「新しいフォルダ」があります。これは、プロジェクト+コンテキストメニューの追加にも存在します。これは、ツール+カスタマイズでコンテキストメニューを見るとわかります。ただし、C++IDEでは非表示になっています。意図的に。

なぜそれが隠されているのかを理解することが重要です。これにより、Explorerを使用してフォルダを作成するときに発生するような問題を回避できます。

問題は、C++ファイルの作成方法です。コンパイラがそれらを使用すると、.objファイルが生成されます。そのobjファイルは、名前がプロジェクト設定であるディレクトリに保存されます。プロジェクト+プロパティ、一般、中間ディレクトリの設定で表示されます。個々の.cppファイルの場合、C / C ++、出力ファイル、オブジェクトファイル名です。そのデフォルト$(IntDir)は、コンパイラに中間ディレクトリ設定を使用するように指示するマクロです。デフォルト設定では、Debugビルドのすべての.objファイルは最終的にDebugサブディレクトリにあります。リリースビルドのリリースサブディレクトリ。.cppが保存された場所に関係なく。

たぶん、あなたは今までにクマのわなを見るでしょう。.cppファイルを使用してサブディレクトリを作成する場合、そのサブディレクトリに、別のサブディレクトリ内の別の.cppファイルと同じ名前の.cppファイルがあると問題が発生します。それらは同じ名前の.objファイルを生成します。一方が最後にコンパイルされた方を上書きします。それは非常に神秘的なリンカーエラーを生成します。最後に作成された.objファイルが2回リンクされ、上書きされた.objファイルのシンボルエラーが欠落しているため、シンボルエラーが重複して発生します。

したがって、先に進んでサブディレクトリを作成しますが、この問題に注意してください。このような衝突が発生した場合は、.cppファイルのオブジェクトファイル名の設定を変更する必要があります。

于 2012-10-20T16:25:04.250 に答える
1

これはやや煩わしいですが、次のことができます。

VisualStudioで新しいフォルダーを作成します。これにより、ファイルシステムに新しいフォルダが作成されることはありません。フォルダに新しいアイテムを追加します。アイテムに適切なディレクトリを選択します。

たとえば、プロジェクトが%Documents%\ Projectにあり、新しいフォルダー名がFolderの場合、そのフォルダーの%Documents%\ Project\Folderに新しいアイテムを追加します。

Visual Studio 2012は、アイテムを目的のフォルダーに配置します。新しいアイテムを追加すると、デフォルトで同じフォルダになります。ここで厄介な部分が発生します。すべてのプロジェクトアイテムに対して3つのフォルダーを作成し、各フォルダーに新しいアイテムを追加しようとすると、Visual Studioは3つのアイテムすべてをファイルシステムの同じ場所に配置しようとします(最後のアイテムを正しいVisualStudioフォルダーに配置しながら、新しいアイテムを追加したフォルダー)。

VisualStudioにこの設定がある可能性があります。見つかりませんでした。私もそんなに一生懸命見ていません。

于 2012-10-20T15:55:36.397 に答える