2011-03-15 96 views

回答

150

obj文件夾包含對象或中間文件,它們是已編譯的尚未鏈接的二進制文件。它們基本上是可以組合起來產生最終可執行文件的片段。編譯器爲每個源文件生成一個目標文件,並將這些文件放入obj文件夾中。

bin文件夾包含二進制文件,它們是您的應用程序或庫的實際可執行代碼。

這些文件夾中的每一個都進一步細分爲DebugRelease文件夾,這些文件夾僅與項目的構建配置相對應。根據您執行的構建類型,上面討論的兩種類型的文件被放置到適當的文件夾中。這使您可以輕鬆確定哪些可執行文件是使用調試符號構建的,哪些可執行文件是在啓用優化並準備發佈的情況下構建的。

請注意,您可以在項目的「屬性」中編譯期間更改Visual Studio輸出可執行文件的位置。您還可以更改構建配置的名稱和選定選項。

+3

無論出於何種原因,我的項目沒有針對obj和bin文件夾的調試或發佈子文件夾。如果編輯我的項目設置以根據當前選定的配置構建到調試/發佈子文件夾,則會出現錯誤,指出在調試我的應用程序時無法創建數據類型。我的應用程序只在dll的bin文件夾中查找,從不知道要查看調試或發佈文件夾。我該如何糾正? – 2013-08-21 20:54:43

+0

只是爲了澄清一個錯字,我在我的obj文件夾中有一個調試和發佈文件夾,但在bin文件夾中沒有調試或發佈文件夾。 – 2013-08-21 21:06:45

+3

@Sly我不明白你在問什麼。項目構建應用程序(EXE)或庫(DLL)。它不能同時建立。因此,如果您的項目創建了一個應用程序,它不會將任何DLL放入您的bin文件夾。如果你的項目建立了一個庫,當你嘗試調試它時你會得到一個錯誤,因爲你不能執行一個DLL。無論如何,這聽起來像你已經改變了項目屬性中的默認輸出路徑。如果您需要更多幫助,請提出新問題。一定要很好地記錄這個問題,如果需要的話,包括你的項目配置的截圖。 – 2013-08-22 09:14:08

12

obj目錄用於編譯或構建系統在生成過程中生成的中間對象文件和其他瞬態數據文件。 bin目錄是最終輸出二進制文件(以及任何依賴關係或其他可部署文件)將被寫入的目錄。

如果您願意,您可以在項目設置中更改用於兩種用途的實際目錄。

1

有關obj目錄的一個有趣事實:如果您在Web項目中設置了發佈,則將發佈的文件將暫存到obj \ Release \ Package \ PackageTmp。如果你想自己發佈這些文件,而不是使用集成的VS功能,那麼你可以在這裏獲取實際需要部署的文件,而不是選擇bin目錄中的所有數字碎片。

相關問題