What are the obj and bin folders (created by Visual Studio) used for?

yesraaj picture yesraaj · Mar 15, 2011 · Viewed 130.9k times · Source

I created a new project in Visual Studio 2010 and noticed that there are now two new folders named obj and bin in my project directory.

A similar pair of folders are created when building and debugging - what are these folders for?

Answer

Cody Gray picture Cody Gray · Mar 15, 2011

The obj folder holds object, or intermediate, files, which are compiled binary files that haven't been linked yet. They're essentially fragments that will be combined to produce the final executable. The compiler generates one object file for each source file, and those files are placed into the obj folder.

The bin folder holds binary files, which are the actual executable code for your application or library.

Each of these folders are further subdivided into Debug and Release folders, which simply correspond to the project's build configurations. The two types of files discussed above are placed into the appropriate folder, depending on which type of build you perform. This makes it easy for you to determine which executables are built with debugging symbols, and which were built with optimizations enabled and ready for release.

Note that you can change where Visual Studio outputs your executable files during a compile in your project's Properties. You can also change the names and selected options for your build configurations.