Не удается открыть источник файл iostream
Некоторые вещи, которые вы должны проверить:
Проверьте папку include в вашей версии VS (в " C:\Program Files\Microsoft Visual Studio xx.x\VC\include "проверьте файл, который вы включаете, iostream убедитесь, что это там).
Проверьте свои проекты Включить каталоги в <Project Name> > Properties > Configuration Properties > VC++ Directories > Include Directories - (это должно выглядеть так: $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include; )
Убедитесь, что вы выбрали правильный проект для этого кода ( File > New > Project > Visual C++ > Win32 Console Application )
Убедитесь, что у вас нет <iostream.h> В любом месте ваших файлов кода VS не поддерживает это (в том же проекте проверьте ваши другие файлы кода, файлы.cpp и.h для <iostream.h> и удали это).
Убедитесь, что у вас не более одного main() Функция в файлах кода вашего проекта (в том же проекте, проверьте ваши другие файлы кода,.cpp и.h файлы для main() и удалите его или замените другим именем).
Некоторые вещи, которые вы можете попробовать построить с помощью:
- исключать using namespace std; от твоего main() и поместите его после директивы include.
- использование std::cout без using namespace std; ,
Вышесказанное сработало для меня. Ниже не сделал:
Это также не удалось:
Скорее всего, вам не хватает $(IncludePath) в Свойства-> Каталоги VC++-> Включить каталоги. Добавление этого должно сделать iostream и других видимыми снова. Вы, вероятно, удалили его по ошибке при настройке программы.
Я получил эту ошибку при создании консольного приложения "Пусто" в Visual Studio 2015. Я заново создал приложение, оставив флажок "Пусто" незаполненным, в него были добавлены все необходимые библиотеки.
Вполне возможно, что ваш компилятор и ресурсы, установленные вокруг него, были каким-то образом неполными. Я рекомендую переустановить ваш компилятор: он должен работать после этого.
Если на ваши каталоги включения правильно ссылаются в листе свойств проекта VC++ -> Свойства конфигурации -> Каталоги VC++ -> Включить каталоги. Путь указан в макросе $(VC_IncludePath) В моем VS 2015 это оценивается как: "C:\Program Файлы (x86)\Microsoft Visual Studio 14.0\VC\include"
Это сделало это для меня.
Вот консольный проект на C++ win32!
Теперь вот консольный проект C++ CLR!
другие вещи, которые вы узнаете из отладки, чтобы добавить для избежания ошибок
Некоторые вещи, которые вы должны проверить:
Проверьте папку include в вашей версии VS (в " C:\Program Files\Microsoft Visual Studio xx.x\VC\include " проверьте файл, который вы включаете, iostream , убедитесь, что он там).
Проверьте свои проекты Включить каталоги в <Project Name> > Properties > Configuration Properties > VC++ Directories > Include Directories - (это должно выглядеть так: $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include; )
Убедитесь, что вы выбрали правильный проект для этого кода ( File > New > Project > Visual C++ > Win32 Console Application )
Убедитесь, что в ваших кодовых файлах нет <iostream.h> , VS не поддерживает это (в том же проекте, проверьте ваши другие файлы кода,.cpp и .h файлы для <iostream.h> и удалите его).
Убедитесь, что у вас не более одной функции main() в вашем файлы проекта кода (в том же проекте, проверьте свои другие файлы кода, файлы .cpp и .h для функции main() и удалите его или замените другим именем).
Некоторые вещи, с которыми вы могли бы попытаться построить:
- Исключить using namespace std; из вашей функции main() и поместить ее после включения директивы.
- Используйте std::cout без using namespace std; .
Выше работали для меня. Ниже не было:
Это также не удалось:
Возможно, ваш компилятор и ресурсы, установленные вокруг него, были как-то неполными. Я рекомендую повторно установить ваш компилятор: он должен работать после этого.
У меня возникла эта ошибка, когда я создал консольное приложение "Пустое" в Visual Studio 2015. Я заново создал приложение, оставив флажок "Пусто", он добавил все необходимые библиотеки.
Это сделало это для меня.
Вот проект консоли С++ win32!
Теперь идет проект консоли С++ CLR!
другие вещи, которые вы узнаете из отладки, чтобы добавить для предотвращения ошибок
используя пространство имен std;
int main ()
строка firstName, lastName;
двойной hourRate, numHours;
Мой файл c_cpp_properties.json
Дайте мне знать, если вам понадобится дополнительная информация
Самый полезный комментарий
Что gcc сообщает, что должен быть путь включения? Запустите эту команду и убедитесь, что все распечатанные пути указаны в вашем c_cpp_properties.json: gcc -v -E -x c++ -
Все 56 Комментарий
Если вы используете Linux, вам нужно добавить путь /usr/include/linux
У меня была такая же проблема с Windows, после того как я добавил "C:\\cygwin64\\lib\\gcc\\x86_64-pc-cygwin\\6.4.0\\include\\c++" в includePath, я получил эту ошибку: cannot open source file "bits/c++config.h" (dependency of "iostream")
Что gcc сообщает, что должен быть путь включения? Запустите эту команду и убедитесь, что все распечатанные пути указаны в вашем c_cpp_properties.json: gcc -v -E -x c++ -
@NikoGP Перейдите в Файл-> Настройки-> Настройки и найдите «intelliSenseEngine», чтобы найти настройку. Однако у вас уже установлен «По умолчанию». Вы запускали команду gcc, о которой говорилось в
Вот мой текущий файл c_cpp_properties.json, когда я наводил курсор на " Кроме того, я установил cygwin перед установкой MingW, я не уверен, что это испортит что-то или нет
Я переформатировал ваш комментарий. Внутри ваших «конфигураций» есть элемент «конфигурации», который является недопустимым синтаксисом для файла c_cpp_properties.json. Исправьте это, как показано ниже:
Хорошо, я думаю, что моя проблема заключается в том, что я установил cygwin до MingW, а затем я неправильно установил необходимые пакеты для правильной работы MingW.
Есть ли где-нибудь, где я могу найти, какие пакеты мне нужно установить, чтобы VS Code правильно работал с MingW?
У меня также возникла проблема, которую
Ошибка при включении iostream:
не может открыть исходный файл "wchar.h" (зависимость от "iostream")
Простой пример "Hello World", показывающий ошибку:
Мой файл c_pp_properties.json:
@smithalexk , для меня этот файл находится в /usr/include . Что clang -Wp,-v -E -xc -x c++ /dev/null показывает в качестве пути включения? "IncludePath" в вашем файле c_cpp_properties.json должен соответствовать этому.
Да, похоже, это исправлено. Спасибо за помощь!
Для справки мне не хватало:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks
мой файл c_cpp_properties.json:
Мой файл tasks.json:
Мой файл launch.json:
Моя пользовательская настройка:
Путь к папке FirstProg:
@ dorsa1986 , что g++ -Wp,-v -E -xc -x c++ /dev/null отображается в качестве пути включения? "IncludePath" в вашем файле c_cpp_properties.json должен соответствовать этому.
Привет @ dorsa1986 , я также заметил, что вы неправильно
@smithalexk Спасибо, я исправил, но все же у меня ошибка
@bobbrow они совпали.
В соответствии с этой ошибкой либо ваш tasks.json неправильно строит вашу программу, либо ваш launch.json имеет неправильный путь к созданной программе. Но это не проблема IntelliSense. Я не вижу красных волнистых линий в вашем редакторе.
как я могу их решить?
Откройте tasks.json или launch.json (в папке .vscode) и убедитесь, что они верны.
это мой файл launch.jason:
Это мой tasks.json:
Я работал над этим около 4 дней. Я не могу найти свою ошибку.
У меня такая же ошибка.
Вы его уже построили? Откройте свой терминал или окно Finder и скажите мне, где находится ваша скомпилированная программа.
@ dorsa1986 Есть ли в названии исполняемого файла a.out? Есть ли у него разрешения для исполняемых файлов? Можете ли вы запустить его без VS Code из командной строки?
Когда я построил его с терминала VScode, я получил эту ошибку:
Вы умеете встраивать терминал Mac? Попробуйте добавить -std=c++11 в командную строку.
@ sean-mcmanus Я новичок в программировании, думаю, да. Однако это делается автоматически в моей папке.
@bobbrow Нет, это не так. У меня такая же ошибка.
Я получил эту ошибку, когда добавил -std = c ++ 11 в командную строку.
Похоже, он пытается скомпилировать ваш код как код C, а не C ++. Добавьте -x c++ в командную строку.
Должно быть множество веб-сайтов, которые помогут вам выполнить этапы создания кода. Этот форум предназначен для устранения ошибок в VS Code Extension, и ваша проблема не кажется ошибкой, поскольку она также не работает для вас в терминале.
У меня заканчиваются идеи для вас, но мне в голову пришло следующее:
- Проверьте свою файловую систему, чтобы убедиться, что там есть заголовки (посмотрите на пути включения, которые ваш компилятор сообщает вам, что он использует)
- Вы устанавливали XCode или запускали xcode-select --install?
- Вы установили другой компилятор, который можете попробовать? (ваш tasks.json ссылается на g ++, но на скриншотах вашего терминала отображается cpp)
- Похоже, у вас уже есть выход в папке. Как ты получил это?
Я выполнил все предложения в этом потоке, и теперь мои browse.path и includePath совпадают с записями, найденными с помощью "g ++ -Wp, -v -E -xc -x c ++ / dev / null".
Однако я все еще не могу включить iostream, atomic или stdio, в основном любой стандартный заголовок. Мои собственные заголовки из подкаталога в порядке.
Чтобы было ясно, моя проблема не в сборке (я использую свою собственную систему сборки), а в проблеме с intellisense. Особенность заключается в том, что мой код находится на удаленном сервере Ubuntu, и я запускаю код VS на своем ноутбуке с Windows с диском Z:, подключенным к / на сервере. Буду признателен, если у кого-нибудь есть идеи.
Можете ли вы поделиться путем включения, указанным в g ++? Это путь на сервере Ubuntu или сопоставленное местоположение в Windows? IncludePath должен соответствовать файловой системе операционной системы, над которой вы работаете (в данном случае Windows с путем Z:).
Это результат выполнения команды g ++ на машине Ubuntu:
Я установил / смонтировал на диске букву Z, поэтому мой includePath выглядит так:
Как видите, я перевел каждый путь на эквивалентный путь в своей системе Windows. Я могу получить доступ к заголовкам, используя эти пути в проводнике Windows, поэтому путь правильный. Таким образом, хотя я могу открыть заголовок iostream, перейдя к «z: \ usr \ include \ x86_64-linux-gnu \ c ++ \ 5 \» и открыв файл в любом редакторе, код VS по-прежнему показывает зеленую волнистую линию под его включением.
Я получаю доступ к серверу через Интернет, поэтому я беспокоюсь, что это может быть связано с тем, что код VS не может анализировать файлы, которые медленно читаются. Это может вызвать эту проблему? Значок огня в правом нижнем углу гаснет через некоторое время (1-2 мин).
Спасибо за ответ.
PS: извините за непоследовательное форматирование.
Здравствуйте. Как сказал @smithalexk выше, расширение C++ по умолчанию не работает. Но когда я добавил эти 3 строки (см. Ниже) - все становится рабочим.
Не могли бы вы внести эти изменения в плагин, чтобы порадовать пользователей Mac ? Спасибо.
Мой вывод gcc -v -E -xc:
Мои файлы "INCLUDE" находятся в c: / MinGW / include /
Недавно мы обновили способ поиска расширением по умолчанию. Эта проблема возникла вместе с множеством других проблем, поэтому, если мы что-то упустили, а у вас все еще есть проблемы, откройте новую проблему.
все равно не работает. но это способ убежать от нее.
@andythedandyone , пожалуйста, откройте новую проблему, и мы будем рады ее изучить.
@andythedandyone : пожалуйста, перейдите в settings.json и установите "C_Cpp.intelliSenseEngine" с "Default" на
"Tag Parser"
Здравствуйте! У меня та же проблема, но я использую кодовые блоки в Windows для компиляции. Помоги мне, пожалуйста !
спасибо, я нашел решение!
Примечание для пользователей MacOS: если вы используете gcc версии 8.1.0 (например) от Homebrew, ваша конфигурация MacOS должна выглядеть следующим образом:
Очень просто. Вам не нужно включать заголовки из XCode. Не устанавливайте compilerPath в /usr/local/bin/gcc-8 , так как это символическая ссылка, которая может нарушить работу IntelliSense. Если у вас по-прежнему возникают проблемы, как у меня, установите следующий пользовательский параметр в settings.json поскольку другие должны решить недавнюю проблему: "C_Cpp.intelliSenseEngine": "Tag Parser",
Какие файлы include необходимы для запуска моего кода с помощью cl.exe из MSVS 2015?
Я включил эти папки в c_cpp_properties.json:
«C: / Program Files (x86) / Windows Kits / 8.1 / Include / shared»,
"D: / Program Files (x86) / Microsoft Visual Studio / 2017Community / VC / include",
"D: / Program Files (x86) / Microsoft Visual Studio / 2017 / BuildTools / *",
"D: / Program Files (x86) / Microsoft Visual Studio / 2017 / BuildTools / VC / Tools / MSVC / 14.13.26128 / include",
"D: / Program Files (x86) / Windows Kits / 10 / Include / 10.0.10240.0 / ucrt",
"D: / Program Files (x86) / Microsoft Visual Studio / 2017 / Community / VC / Tools / MSVC / 14.13.26128 / include",
"D: / Program Files (x86) / Mirucrosoft Visual Studio / 2017 / Community / VC / Tools / MSVC / 14.13.26128 / atlmfc / include",
"D: / Program Files (x86) / Microsoft Visual Studio / 2017 / Community / VC / Tools / MSVC / 14.13.26128 / crt / src / x64",
@ prdas31 В настоящее время наше расширение не поддерживает какие-либо функции сборки - c_cpp_properties.json предназначен для функции IntelliSense, а не для фактической компиляции. Для сборки с MSVS 2015 вам может потребоваться сборка из командной строки разработчика, которая поставляется с VS.
@ prdas31 В настоящее время наше расширение не поддерживает какие-либо функции сборки - c_cpp_properties.json предназначен для функции IntelliSense, а не для фактической компиляции. Для сборки с MSVS 2015 вам может потребоваться сборка из командной строки разработчика, которая поставляется с VS.
Большое спасибо за разъяснения и предложения. Теперь я использую файлы сборки, чтобы включить такие пути:
К вашему сведению, вы должны избегать использования вкладок в вашем коде. С ними очень трудно иметь дело при форматировании на сайтах с вопросами и ответами. Вместо этого используйте пробелы. Я предполагаю, что ваш путь включения включает каталог включения VC (в программных файлах). Однако при установке VC вы выбрали родные файлы? Привет, Дэвид, это то, что у меня есть в моем пути включения: Программные файлы (x86)> Microsoft Visual Studio 10.0> VC> include> srv.h Что если вы не хотите использовать пространство имен std?Некоторые вещи, которые вы должны проверить:
Проверьте папку include в вашей версии VS (в " C:\Program Files\Microsoft Visual Studio xx.x\VC\include " проверьте файл, который вы включаете, iostream , убедитесь, что он там).
Проверьте свои проекты Включить каталоги в <Project Name> > Properties > Configuration Properties > VC++ Directories > Include Directories - (это должно выглядеть так: $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include; )
Убедитесь, что вы выбрали правильный проект для этого кода ( File > New > Project > Visual C++ > Win32 Console Application )
Убедитесь, что в ваших кодовых файлах нет <iostream.h> , VS не поддерживает это (в том же проекте, проверьте ваши другие файлы кода,.cpp и .h файлы для <iostream.h> и удалите его).
Убедитесь, что у вас не более одной функции main() в вашем файлы проекта кода (в том же проекте, проверьте свои другие файлы кода, файлы .cpp и .h для функции main() и удалите его или замените другим именем).
Некоторые вещи, с которыми вы могли бы попытаться построить:
- Исключить using namespace std; из вашей функции main() и поместить ее после включения директивы.
- Используйте std::cout без using namespace std; .
Выше работали для меня. Ниже не было:
Это также не удалось:
(Для всех, кто передает) Если это происходит с вами, отключите предварительно скомпилированные заголовки.Возможно, ваш компилятор и ресурсы, установленные вокруг него, были как-то неполными. Я рекомендую повторно установить ваш компилятор: он должен работать после этого.
Я пытался несколько раз. Тот же результат. Я рассматриваю возможность использования другого компилятора. Пожалуйста, вы можете предложить кому-нибудь?Вот проект консоли С++ win32!
Теперь идет проект консоли С++ CLR!
другие вещи, которые вы узнаете из отладки, чтобы добавить для предотвращения ошибок
Это сделало это для меня.
У меня возникла эта ошибка, когда я создал консольное приложение "Пустое" в Visual Studio 2015. Я заново создал приложение, оставив флажок "Пусто", он добавил все необходимые библиотеки.
Я только что перешел с VS2005 на VS2010, и ему не удается скомпилировать простую программу.
ошибки -
PS: я совершенно новичок в использовании VS2010, но имею опыт работы в VS 2005.
вот списки каталогов, которые я добавил из VS2005 в VS2010 в разделе "лист свойств пользователя"
исполняемый файл -
включить -
библиотека
источник
Я столкнулся с той же проблемой на нескольких разных машинах, где уже были установлены другие версии VS (2005, 2008). В итоге я также получил всевозможные странные ошибки.
Я обнаружил, что следующий трюк сработал для меня, возможно, он будет работать и в вашем случае: - Откройте новый экземпляр VS2010 - Создайте новое консольное приложение с параметрами дефа. - Попробуйте скомпилировать: должны быть некоторые ошибки - Откройте "менеджер недвижимости" - Поднимите Microsoft.СРР.С Win32.пользователь страницы свойств проекта - Нажмите на каталоги VC++ - Нажмите на поле "исполняемые каталоги". Чтобы отобразить раскрывающийся список, нажмите на раскрывающийся список и выберите "Редактировать". Вы должны увидеть кучу унаследованных значений, которые предположительно содержат все необходимые каталоги, подобные перечисленным выше. Снимите флажок "наследовать от родителя или проекта по умолчанию". Перепроверьте его и нажмите "Ok".
- Повторите это для каталогов includes, library и т. д. - Нажмите "Применить" и " ОК" - Перестройте проект и проверьте, сработало ли это.
Мне нужно было сделать это только один раз. После закрытия VS и создания нового проекта я мог бы просто скомпилировать. Прежде чем я обнаружил это, я вручную удалил все унаследованные значения и добавил абсолютные пути ко всем каталогам VS и SDK. Это тоже сработало, но работы было гораздо больше.
системе не удалось найти компилятор Visual C++ (CL.исполняемый.)..
вещей, которые вы должны попробовать:
повторно запустите установщик Visual Studio 2010 и убедитесь, что выбрана установка средств Visual C++ для вашей платформы (x86 или amd64).
запустите программу установки в режиме восстановления.
Если это не решит вашу проблему:
- попробуйте запустить Удаление Visual Studio 2010 Утилита (от Microsoft) а затем снова попробуйте установить VS 2010.
у меня была та же проблема и я нашел эту страницу через поиск, но я не совсем понял ответ Ральфа о листе свойств пользователя и не повезло с повторной установкой. Я думаю, что ответ Ральфа сработал бы для меня, но я смотрел на диалог "страницы свойств", который появляется, когда вы щелкаете правой кнопкой мыши по проекту в обозревателе решений и выбираете "свойства". Я не понимал, что он отличается от "менеджера недвижимости".
Итак, я спросил на форуме MSDN и получил ответ и хорошее объяснение листов собственность. Решение, которое сработало для меня, состояло в том, чтобы отредактировать лист свойств пользователя в текстовом редакторе и удалить все пути, оставив его пустым:
Я понятия не имею, почему это работает, но я получаю эту ошибку и установке Команды Питания Visual Studio решить это для меня. Это расширение добавляет каталоги Configuration Properties -> VC++, которые позволяют напрямую изменять макрос ExecutableDirectories, это может иметь какое-то отношение к этому.
Читайте также: