2011-01-04 2 views
18

Я только что перешел из VS2005 в VS2010 и не смог скомпилировать простую программу.Ошибка VS 2010 - невозможно открыть файл «iostream»

#include <iostream> 
using std::cout; 
using std::endl; 

int main() 
{ 
    cout << "Hello Visual Studio 2010 :)" << endl; 
} 

Ошибки -

1 error TRK0005: Failed to locate: "CL.exe". The system cannot find the file specified. 
2 IntelliSense: cannot open source file "iostream" 
3 IntelliSense: name followed by '::' must be a class or namespace name 
4 IntelliSense: name followed by '::' must be a class or namespace name 
5 IntelliSense: identifier "cout" is undefined 
6 IntelliSense: identifier "endl" is undefined 

PS: Я совершенно новой для использования VS2010, но есть опыт работы в VS 2005.

Вот списки каталогов, которые я добавил из VS2005 по VS2010 в разделе «Пользовательский лист свойств»

Исполняемые -

$(VCInstallDir)bin; $(VSInstallDir)Common7\Tools\bin; $(VSInstallDir)Common7\tools; $(VSInstallDir)Common7\ide; $(VSInstallDir); $(VSInstallDir)\SDK\v2.0\bin 

Включить -

$(VCInstallDir)include; $(VCInstallDir)atlmfc\include; $(FrameworkSDKDir)include 

Библиотека -

$(VCInstallDir)lib; $(VCInstallDir)atlmfc\lib; $(VCInstallDir)atlmfc\lib\i386; $(FrameworkSDKDir)lib; $(VSInstallDir); $(VSInstallDir)lib 

Источник -

$(VCInstallDir)atlmfc\src\mfc; $(VCInstallDir)atlmfc\src\mfcm; $(VCInstallDir)atlmfc\src\atl; $(VCInstallDir)crt\src 
+0

Включает ли вы путь к файлу для файлов заголовков по умолчанию? – DumbCoder

+0

Да, 'CL' является компоновщиком. Если ваш компилятор не может обнаружить, что он испорчен. Это действительно делает этот вопрос более сложным (Serverfault.com), чем вопрос программирования (SO). –

+5

@ T.E.D .: Нет, 'CL.exe' является компилятором в Visual Studio, компоновщик называется' LINK.exe'. –

ответ

18

Я столкнулся с той же проблемой на нескольких разных машинах, где уже были установлены другие версии VS (2005, 2008). Я тоже получал всевозможные странные ошибки.

Я нашел для меня следующий трюк, возможно, он тоже будет работать в вашем случае: - Открыть новый экземпляр VS2010 - Создать новое консольное приложение с настройками def. - Попробуйте скомпилировать: там должны быть какие-то ошибки - Откройте «Диспетчер свойств» - Поднимают лист свойств Microsoft.Cpp.Win32.user проекта - Нажмите на VC++ Directories - Нажмите на «Исполняемые Справочники» поле. Это должно отобразить выпадающее меню, нажмите на раскрывающийся список и выберите «Изменить». Вы должны увидеть кучу унаследованных значений, которые предположительно содержат все необходимые каталоги, похожие на те, которые вы указали выше. Снимите флажок «Наследовать от родительского или проекта по умолчанию». Повторно проверьте его и нажмите «ОК».
- Повторите это для включений, библиотечных каталогов и т. Д. -Нажмите «Применить» и «Хорошо» - Перестройте проект и проверьте, не сработало ли это.

Мне нужно было это сделать только один раз. После закрытия VS и создания нового проекта я мог просто скомпилировать. Прежде чем я обнаружил это, я вручную удалил все унаследованные значения и добавил абсолютные пути ко всем каталогам VS и SDK. Это также сработало, но было намного больше работы.

+0

Отличный ответ Ральф ... Основная проблема здесь, как мы можем понять из-за ошибки, заключается в том, что визуальная студия не находит файл компилятора в вашем списке исполняемых каталогов, как определено на ваших страницах свойств. Убедившись, что опция «Наследовать от родительского или проекта по умолчанию» отмечена, убедитесь, что в конце поля «Исполняемые каталоги» отображается значение $ (ExecutablePath). Это действительно все, что вам нужно. Если вы изменяете отдельные параметры проекта для каждого файла, вам также необходимо убедиться, что для этого проекта также добавлен $ (ExecutablePath). –

+0

Это сработало для меня! Я буду мучиться об этом в течение нескольких недель! Благодаря! – 8bitcartridge

6

Система не может найти Visual C++ компилятор (cl.exe) ...

Вещи вы должны попробовать:

  • Rerun Визуальный установки Studio 2010 и убедитесь, что вы выбрали для установки Инструменты Visual C++ для вашей платформы (x86 или amd64).

  • Запустите установщик в режиме ремонта.

Если это не поможет решить проблему:

5

У меня была такая же проблема, что я нашел эту страницу с помощью поиска, но я не совсем понял ответ Ральфа о панели свойств пользователя и не повезло с повторной установкой. Я думаю, что ответ Ральфа работал бы на меня, но я смотрел диалоговое окно «Страницы свойств», которое появляется, когда вы щелкаете правой кнопкой мыши по проекту в обозревателе решений и выбираете «Свойства». Я не понимал, что это отличается от «Property Manager».

Итак, я спросил на форуме msdn и получил an answer и a nice explanation of property sheets. Решение, которое работало для меня, чтобы изменить свойства листа пользователя в текстовом редакторе и удалить все пути, оставив его пустым, как это:

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

</Project> 

лист свойств пользователя Microsoft.Cpp.Win32.user.props под <localappdata>\microsoft\msbuild\v4.0 где <localappdata> является c:\users\<username>\appdata\local под Win7.

+1

ОН МОЙ БОГ ЭТО РАБОТАЕТ –

0

Я понятия не имею, почему это сработало, но я получал эту ошибку, и установка Visual Studio Power Commands решила это для меня. Это расширение добавляет свойства Configuration -> VC++ Directories, которые позволяют вам напрямую модифицировать макрос ExecutableDirectories, это может иметь какое-то отношение к этому.