Почему папка x86 для c # проекта? - PullRequest
4 голосов
/ 06 декабря 2010

Почему папка x86 существует в папке obj в файле проекта Sharp?

Файловая структура моего проекта

ProjectOne
---------- Bin
-------------- Debug
-------------- Release
---------- Obj
-------------- x86 // Почему это?
------------------- Debug
------------------- Release
----- Мои исходные файлы.

Почему мой каталог текущего файла - bin \ debug, а не projectOne (где существует мой исходный файл)?

Ответы [ 4 ]

6 голосов
/ 06 декабря 2010

При выполнении текущий каталог по умолчанию будет находиться там, где находится исполняемый файл - который будет в вашем каталоге bin / debug.

Вы можете указать, откуда вы хотите запускать его при запуске в Visual Studio (хотя в свойствах проекта - если вам нужно больше подробностей, скажите, пожалуйста, какую именно версию / редакцию VS вы используете). *

Что касается содержимого каталога obj - вы можете в значительной степени игнорировать весь каталог. Он полон промежуточных файлов, которые Visual Studio создает и затем использует, но вам почти никогда не нужно напрямую использовать какие-либо файлы.

1 голос
/ 06 декабря 2010

Папка x86 относится к целевой платформе для вашей сборки в менеджере конфигурации сборки. Это позволяет создавать 32-битные приложения на 64-битной ОС. Как говорят Коди и Джон, вы можете игнорировать каталог obj.

0 голосов
/ 06 декабря 2010

Объектные файлы (файлы, хранящиеся в Obj) - это скомпилированные двоичные файлы, которые не были связаны. Думайте об этом как о фрагментах окончательного исполняемого файла, которые впоследствии будут объединены для создания вашего исполняемого файла.

При компиляции исходного кода каждый исходный файл будет свободно компилироваться в один объектный файл. Зачем? Без причины *, просто как был написан ваш конкретный компилятор. Есть другие компиляторы на других языках, которые не делают этого, но вместо этого компилируют все в один большой двоичный файл за один шаг. Но люди, написавшие ваш компилятор, решили сначала скомпилировать отдельные объектные файлы.

Теперь вы можете себе представить, что если каждый исходный файл генерирует один объектный файл, то каждый раз, когда вы компилируете код, ваша исходная директория будет грязной и заполнена большим количеством файлов .obj (и действительно, многие компиляторы Си традиционно этот). Со временем разработчики, работающие над большими проектами, начали писать сценарий компиляции или настраивать свои проекты для сбора всех файлов .obj в один каталог, чтобы сделать исходный каталог менее беспорядочным.

Людям, написавшим ваш компилятор, очевидно, понравилась идея отдельного каталога Obj, поэтому они сделали его конфигурацией проектов по умолчанию. Что касается того, почему существует подкаталог x86, потому что ваш компилятор также поддерживает другие процессоры, такие как ARM (для Android, Win Phone 7 и iPhone), а также различает 32-битные и 64-битные.


* примечание: на самом деле есть несколько очень веских причин для этого, в том числе сделать код компилятора более модульным и поддерживать пошаговую компиляцию, но тот факт, что некоторые люди могут делать все это без генерации отдельных файлов obj, означает В основном это дизайнерское решение разработчиков компилятора, а не необходимость.

0 голосов
/ 06 декабря 2010

Папка bin содержит двоичные файлы вашего приложения (то есть исполняемые файлы). Он подразделяется на две (или более) папки - обычно Debug и Release. Они соответствуют вашей конфигурации сборки. Когда ваш проект компилируется, исполняемые файлы помещаются в одну из этих папок, в зависимости от того, какой тип сборки вы провели. Если вы хотите запустить свой исполняемый файл вне среды разработки, вы можете щелкнуть по файлу «.exe», который находится в одной из этих папок.

Если вы хотите, вы можете изменить, где Visual Studio выводит ваши исполняемые файлы во время компиляции, используя окно свойств вашего проекта.

Каталог obj содержит промежуточные (или объектные) файлы, которые Visual Studio создает при компиляции приложения. Это не то, о чем вам когда-либо нужно беспокоиться или использовать файлы.

Наконец, ваши исходные файлы хранятся в корневом каталоге, как показано в окне обозревателя решений. Вы сами управляете расположением этих файлов; они не управляются Visual Studio.

...