Устранение неполадок в Microsoft Visual C++ компилятор или компоновщик Visual C++

Переводы статьи Переводы статьи
Закрыть Закрыть
Код статьи: 974229 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все
Источник::Поддержка Майкрософт

БЫСТРАЯ ПУБЛИКАЦИЯ

В БЫСТРО ПУБЛИКУЮЩИХСЯ СТАТЬЯХ ПРЕДСТАВЛЕНА ИНФОРМАЦИЯ, ПОЛУЧЕННАЯ НАПРЯМУЮ ОТ СЛУЖБЫ ТЕХНИЧЕСКОЙ ПОДДЕРЖКИ МАЙКРОСОФТ.. ИНФОРМАЦИЯ, СОДЕРЖАЩАЯСЯ В НИХ, ПРЕДОСТАВЛЕНА В ОТВЕТ НА СРОЧНЫЕ ЗАПРОСЫ ИЛИ В КАЧЕСТВЕ ПРИЛОЖЕНИЯ К ДРУГИМ СТАТЬЯМ БАЗЫ ЗНАНИЙ..

указанного действия.

При исследовании возможных проблем с Microsoft Visual C++ компилятор или компоновщик, важно получить как сведения о процессе построения и используются параметры. В этой статье обсуждаются некоторые советы по устранению неполадок для решения ваших построения проблемы или записи исчерпывающие сведения для технической поддержки корпорации Майкрософт.

Решение.

Ошибки компилятора



Ошибок компилятора, такие как внутренние ошибки компилятора (то есть C1001), зависаний и сбоев его можно использовать для записи выходных данных препроцессора C/C++ для предоставления пример упрощенного воспроизвести проблему. В среде разработки Visual C++, это можно сделать путем задания "Создание предварительно обработанного файла«Свойства»С помощью номера строк (/ P)"или"Без номера строк (/EP /P)". Это свойство можно найти в узле страниц свойств проекта в разделеСвойства конфигурации,C/C++,Параметры предварительной обработки.

Этот параметр задается на уровне проекта изProject,Свойствафайлы так, он будет создан .i все исходные файлы в проекте, либо оно может быть установлено для одного файла щелкните правой кнопкой мыши файл в обозревателе решений, выбрав в менюСвойстваконтекстное меню, чтобы открыть окно свойств для отдельного файла.

Параметр компилятора /P направляет CL.EXE записывать выходные данные препроцессора в файл. Добавление /EP приведет к отключению добавлять сведения о номере строки для результирующего файла. /P обычно достаточно, но /EP /P будет создавать выходной файл меньшего размера. Выходные данные препроцессора файл будет иметь то же имя, что компиляции исходного файла, но с расширением .i например file1.cpp создает файл file1.i выходные данные препроцессора в той же папке. Обратите внимание, что компиляция будет продолжена после фазы предварительной обработки, при использовании это коммутатора, т. е .OBJ файл не будет создан компилятором и может появиться ошибка связи, отражая тот факт, OBJ-файлы не найдены.

Можно скомпилировать его выходные данные препроцессора сам по себе, вне контекста проекта Visual Studio. .I файл содержит все код файла заголовка, замена макрокоманды и предварительной обработки компилятора директивы сведения, необходимые для компиляции этого конкретного .C .CPP исходный файл или. Другими словами он является самодостаточный модуль, который должен иметь возможность воспроизведения ошибки компиляции, не все зависимости на другие файлы. Полученный файл будет часто быть очень большими и содержать большой объем пустого пространства.

Неполадки связи



Для решения проблем компоновщика (ошибки типа LNKxxxx) можно использовать параметр командной строки компоновщика /LINKREPRO для создания тестов, содержащий только входных данных компоновщика без любые зависимости от исходных файлов. / LINKREPRO используется следующий синтаксис:

   / LINKREPRO:<path></path>

"<path>" — полный путь к пустой папке локальной файловой системе. Эта папка уже должна существовать - компоновщик не создаст его автоматически и выдаст ошибку, если папка не существует. </path>

This option is not directly exposed in the project system. To add it to a build, open the projectСвойстваmenu from theProjectменю. ВСвойства конфигурации,Ошибка компоновщика,ПараметрыВ диалоговом окнеAdditional Optionsedit box, enter the /LINKREPRO:<path> switch (including the forward slash) and replacing path with the pre-existing local folder path. For example: </path>

/LINKREPRO:C:\TEMP\LINKREPRO\

If there are other linker options already in this edit box, sperate them with commas.

Alternatively, you can use a LINK_REPRO environment variable. If the LINK_REPRO environment variable exists, the linker will read the output path from the environment variable and generate a linkrepro. The /LINKREPRO switch is not needed when using the LINK_REPRO environment variable. To use the LINK_REPRO environment variable:

1.   Open up aVisual Studio Command Prompt. This is installed under the Start menu, In the Visual Studio folder under the Visual Studio Tools subfolder.

2.    Create the LINK_REPRO environment variable pointing to an existing and empty directory, for example:

SET LINK_REPRO=C:\TEMP\LINKREPRO\

3.    Run Visual Studiofrom the same command promptso that it shares a copy of the environment you have just modified.

4.    Open the project and do aRebuild Allof the project.

When LINK.EXE is invoked in the build, it will copy everything it needs to link your project into the linkrepro directory. Among the files copied will be your object files (*.OBJ), required library files (*.LIB), including Microsoft libraries, and a linker response file (LINK.RSP), so that LINK is no longer dependent on your solution file.

To confirm that you have all the necessary files to reproduce the link problem, you can run LINK in the directory specified by the LINK_REPRO environment variable, using the linker response file generated by the linkrepro:
LINK @link.rsp

Before doing this, use the following command to switch off this feature if using the command line environment variable:
SET LINK_REPRO=

You can also use this process to verify the files involved in creating a library, when using LIB.EXE or LINK /LIB.

ЗАЯВЛЕНИЕ ОБ ОТКАЗЕ

MICROSOFT И/ИЛИ ЕЕ ПОСТАВЩИКИ НЕ ДЕЛАТЬ ПРЕДСТАВЛЕНИЯ ИЛИ ГАРАНТИЙ О ПРИГОДНОСТИ, НАДЕЖНОСТЬ И ТОЧНОСТЬ ИНФОРМАЦИИ, СОДЕРЖИТСЯ В ДОКУМЕНТЫ И СВЯЗАННЫХ РИСУНКОВ ПУБЛИКАЦИИ НА ВЕБ-УЗЕЛ (“ МАТЕРИАЛОВ ”) ДЛЯ ЛЮБЫХ ЦЕЛЕЙ. МАТЕРИАЛЫ МОГУТ СОДЕРЖАТЬ ТЕХНИЧЕСКИЕ НЕТОЧНОСТИ И ОПЕЧАТКИ. ЭТА ИНФОРМАЦИЯ ПЕРИОДИЧЕСКИ ПОДВЕРГАЕТСЯ ИЗМЕНЕНИЯМ БЕЗ ПРЕДУПРЕЖДЕНИЙ..

В МАКСИМАЛЬНОЙ СТЕПЕНИ, ДОПУСКАЕМОЙ ДЕЙСТВУЮЩИМ ЗАКОНОДАТЕЛЬСТВОМ, КОРПОРАЦИЯ МАЙКРОСОФТ И/ИЛИ ЕЕ ПОСТАВЩИКИ ОТКАЗЫВАЮТСЯ ОТ ПРЕДОСТАВЛЕНИЯ КАКИХ-ЛИБО ПРЯМЫХ, ПОДРАЗУМЕВАЕМЫХ ИЛИ ПРЕДУСМОТРЕННЫХ ГАРАНТИЙ В ОТНОШЕНИИ СВОИХ МАТЕРИАЛОВ, ВКЛЮЧАЯ, БЕЗ ОГРАНИЧЕНИЙ, ГАРАНТИИ ПРАВ СОБСТВЕННОСТИ, НЕНАРУШЕНИЯ АВТОРСКИХ ПРАВ, УДОВЛЕТВОРИТЕЛЬНЫХ УСЛОВИЙ И КАЧЕСТВА, ТОВАРНОГО СОСТОЯНИЯ И СООТВЕТСТВИЯ КОНКРЕТНЫМ ЦЕЛЯМ..
Примечание. Это ЭКСПРЕСС-ПУБЛИКАЦИЯ, подготовленная непосредственно службой технической поддержки Майкрософт . Сведения, содержащиеся в данном документе, предоставлены в качестве отклика на возникшие проблемы. Из-за срочности в материалах могут быть опечатки, и в любое время и без уведомления в них могут быть внесены изменения. Чтобы получить дополнительные сведения, см. Условия использования.

Свойства

Код статьи: 974229 - Последний отзыв: 30 ноября 2010 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual Studio 2005 Professional Edition
  • Microsoft Visual Studio 2005 Team Edition for Database Professionals
  • Microsoft Visual Studio 2005 Team Edition for Software Architects
  • Microsoft Visual Studio 2005 Team Edition for Software Developers
  • Microsoft Visual Studio 2005 Team Edition for Software Testers
  • Microsoft Visual C++ 2008 Express Edition
  • Microsoft Visual Studio 2008 Standard Edition
  • Microsoft Visual Studio 2008 Professional Edition
  • Microsoft Visual Studio 2008 Team Edition for Database Professionals
  • Microsoft Visual Studio 2008 Team Edition for Software Architects
  • Microsoft Visual Studio 2008 Team Edition for Software Developers
  • Microsoft Visual Studio 2008 Team Edition for Software Testers
Ключевые слова: 
kbrapidpub kbnomt kbmt KB974229 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:974229

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com