2013-04-03 7 views
5

В выходном каталоге, где Visual Studio помещает скомпилированный исполняемый файл, есть три дополнительных файла типов *.exp, *.lib, .pdb. Мне не нужны эти файлы, и я бы хотел, чтобы компилятор не создавал их.Почему Visual Studio генерирует эти дополнительные файлы?

Вот как выглядит мой выходной каталог. Мне нужен только файл *.exe.

output directory with unwanted additional files

Каковы эти дополнительные файлы для? Как я могу отключить их создание? Если они необходимы для процесса сборки, есть ли способ автоматически удалить их после создания исполняемого файла?

Я использую Visual Studio 2012. Если вам нужна дополнительная информация, прокомментируйте.

+1

PDB-файл http://stackoverflow.com/questions/3899573/what-is-a-pdb-file –

+0

'Application.pdb' содержит отладочную информацию, чтобы помочь отладчику скорректировать код в' Application.exe' с исходным кодом , Вы почти наверняка этого хотите, особенно в отладочных сборках. Два других файла часто генерируются для целей, которые экспортируют функции. Вопрос в том, почему вы не хотите, чтобы эти файлы * сгенерированы *? Они чем-то вас беспокоят? –

+0

Благодаря @JeffPaquette я отключил генерацию файла '* .pdb'. Мне нужен только файл '* .exe', и я не понимаю, почему * я также получаю файл библиотеки. И я никогда не слышал о '* .exp' раньше. Кстати, это все о моей конфигурации сборки релиза. – danijar

ответ

0

Есть некоторые функции внутри, объявленные с помощью __declspec (dllexport). Это означает, что они экспортируются, и линкер считает, что необходимо связать эту динамическую библиотеку (независимо от того, является ли она exe или dll - в целом структура одинакова) и создает файлы * .lib и * .exp

Смежные вопросы