Rezable 0 / 0 / 0 Регистрация: 05.10.2019 Сообщений: 11 |
||||
1 |
||||
22.11.2019, 12:57. Показов 17486. Ответов 4 Метки c++ (Все метки)
Ошибка (активно) E1696 не удается открыть источник файл «stdafx.h»
0 |
oleg-m1973 6577 / 4562 / 1843 Регистрация: 07.05.2019 Сообщений: 13,726 |
||||
22.11.2019, 13:03 |
2 |
|||
Ошибка (активно) E1696 не удается открыть источник файл «stdafx.h» А он есть?
0 |
0 / 0 / 0 Регистрация: 05.10.2019 Сообщений: 11 |
|
22.11.2019, 13:07 [ТС] |
3 |
тогда ошибка в этой строке будет.Неинициализированные локальные переменные
0 |
oleg-m1973 6577 / 4562 / 1843 Регистрация: 07.05.2019 Сообщений: 13,726 |
||||
22.11.2019, 13:10 |
4 |
|||
тогда ошибка в этой строке будет.Неинициализированные локальные переменные А чему у тебя там должны быть раны x и y? Сделай хотя бы
0 |
zss Модератор 13295 / 10431 / 6250 Регистрация: 18.12.2011 Сообщений: 27,866 |
||||
22.11.2019, 16:49 |
5 |
|||
void Check(int n, double x, double y); Зачем вообще Вы передаете x,y в эту функцию?
0 |
Go to Project > (ProjectName)Properties > C/C++ > Precompiled Headers
and set Precompiled Header
to Not Using Precompiled Headers
.
Then remove the line in your code that says:
#include "stdafx.h"
And next time when you make a new project, just use a blank template without precompiled headers.
(Also, post code, not a picture of code)
So I recently downloaded Windows Visual Studio 2019. I haven’t programmed in a while and I wanted to refresh myself with a basic «hello world» program. But for some reason I’m getting an error with my Stdafx.h header. The error code is E1696 «cannot open source file «stdafx.h»» anyone know how to fix it?
asked Aug 11, 2019 at 5:12
The default precompiled header in Visual Studio used to be stdafx.h
. Since then, the default name has been changed to pch.h
, and later precompiled headers became disabled by default. Simply remove the #include "stdafx.h"
or change it to #include "pch.h"
depending on your precompiled header settings. If you don’t need precompiled headers, you can disable it.
answered Aug 11, 2019 at 5:28
eesiraedeesiraed
4,6264 gold badges16 silver badges34 bronze badges
1
Я пытаюсь создать решение на Visual Studio Community 2017, но получаю сообщение об ошибке «Не удается открыть файл включения: ‘stdio.h’ «. Я прочитал несколько похожих вопросов, но все еще не могу решить эту проблему. Похоже, stdio.h файл вызывается в stdafx.h файл. Ниже приведены подробности. Какие-либо предложения? (Я пока не могу встраивать изображения, поэтому, пожалуйста, нажмите на ссылки для скриншотов.)
Детали системы:
Windows 10
Visual Studio Community 2017 v.15.2 (26430.6)
— Установленная разработка рабочего стола с C ++ (Снимок экрана: Список установки )
Шаг 1: Я написал знаменитую программу Hello World на C ++.
Шаг 2: Я нажал на Построить> Построить решение.
Проблема: ‘Stdio.h’: Данный файл или каталог отсутствует. Полная ошибка:
Детали по устранению неполадок / Вещи, которые я пробовал:
- Свойства конфигурации> Каталоги VC ++
Include Directories $(VC_IncludePath);$(WindowsSDK_IncludePath); - Снимок экрана: Solution Explorer (файлы в проекте)
Код в stdafx.cpp файл:
Код в stdafx.h файл:
Обратите внимание #include за а также оба имеют красную линию загогулины внизу и говорят «не может открыть исходный файл».
TRIED: я попытался удалить последние две строки, но потом я получил больше ошибок.
ПОПРОБУЙТЕ: так как многие предположили, что stdafx.h не требуется, я попытался удалить только первую строку, #include «stdafx.h» , Но для того, чтобы это сработало, мне пришлось сделать немного больше. СМОТРИТЕ ОТВЕТ.
Решение
Возникла та же проблема с переносом проекта с VS2013 на VS2017,
Исправлено: измените «Свойства-> Общие-> Версия Windows SDK» на 10
Другие решения
Столкнулся с проблемой пропавших без вести stdlib.h а также stdio.h (а может и больше) после установки VS2017 Community на новый компьютер и переноса решения с VS2013 на VS2017.
Используемый @ Максим Акристиный предложение, но все равно получено сообщение об ошибке совместимости набора инструментов. Однако сама VS предложила сделать ретаргетинг решения, щелкнув правой кнопкой мыши на решении в Обозреватель решений, затем выбрав Retarget solution из меню и обновленный Windows SDK Version из выпадающего списка.
Сейчас мои проекты строятся без проблем.
Обратите внимание, что вам может потребоваться сделать проект стартовым проектом для ретаргетинга.
Есть три способа решить эту проблему.
- Игнорировать предварительно скомпилированные заголовки # 1
шаги: Проект> Свойства> Свойства конфигурации> C / C ++> Командная строка> в поле Дополнительные параметры добавьте / Y-. (Снимок экрана со страницами свойств )> ОК> Удалить #include «stdafx.h» - Игнорировать предварительно скомпилированные заголовки # 2
шаги: Файл> Создать> Проект> …> В окне мастера приложений нажмите кнопку Далее> Снимите флажок «Предварительно скомпилированный заголовок»> «Готово»> «Удалить». #include «stdafx.h»
Переустановите Visual Studio
Это также сработало для меня, потому что я понял, что, возможно, что-то не так с моим Windows SDK. Я использовал Windows 10, но с Windows SDK 8.1. У вас может быть и эта проблема.
шаги: Откройте установщик Visual Studio> щелкните трехстрочную строку меню> Удалить> Перезагрузите компьютер> Откройте установщик Visual Studio> Установите то, что вам нужно, но убедитесь, что вы устанавливаете только последнюю версию Windows SDK 10, а не несколько или 8.1.
Когда я устанавливал Visual Studio в первый раз, я получал сообщение о том, что мне нужно установить Windows SDK 8.1. Так я и сделал с помощью опции Modify установщика Visual Studio. Возможно, это было проблемой, потому что я установил ее после того, как Visual Studio уже была установлена, или потому что мне нужен SDK 10 вместо этого. Просто чтобы быть в безопасности, я сделал полную переустановку.
У меня была похожая проблема после обновления моего VS2017. Проект построен хорошо; но много «ошибок», когда код был поднят в редакторе. Даже попробовал переустановить VS. Я смог решить эту проблему, установив для параметра «Игнорировать стандартные пути включения» значение «Да». Попытка построить решение с большим количеством ошибок. Вернулся и установил опцию на Нет. После восстановления моя проблема ушла.
Если вы не хотите использовать Windows SDK для Windows 10 (например, вы можете работать над проектом с открытым исходным кодом, решение которого не принимается вами), вы можете решить эту проблему в проекте Windows SDK 8.1 с помощью навигационный Tools -> Get Tools and Features. -> Individual Compontents tab и установка отдельных компонентов «Windows 8.1 SDK» (в составе SDK, библиотек и сред) и «Windows Universal CRT SDK» (в разделе «Компиляторы», средства сборки и среды выполнения):
У меня была такая же проблема при создании VS 2013 Project с помощью Visual Studio 2017 IDE.
Решением было установить правильный «Platformtoolset v120 (Visual Studio 2013)». Для этого должен быть установлен Windows SDK 8.1.
Если вы хотите использовать Platformtoolset v141 (Visual Studio 2017), необходимо установить Windows SDK 10.
Platformtoolset может быть выбран в диалоге свойств проекта: General -> Platformtoolset
526 просмотра
1 ответ
103 Репутация автора
Я пытаюсь использовать графическую библиотеку (SFML) для C ++, и у меня возникли проблемы. Я использую Visual Studio 2017. Я посмотрел много уроков на Youtube и получаю ту же ошибку с каждым, что пытаюсь. Я не могу найти решение, так как люди говорят «папки должны быть вместе», что я уже сделал: Вот ошибки, которые я получаю:
E1696 не может открыть исходный файл «stdafx.h» c: Users George source repos Game Game main.cpp 1
E0065 ожидал ‘;’ c: Users George source repos Game Game main.cpp 5
E1696 не может открыть исходный файл «SFML / Graphics.hpp» c: Users George source repos Game Game main.cpp 2
C1083 Невозможно открыть включаемый файл: ‘stdafx.h’: такого файла или каталога нет: c: users george source repos game game main.cpp 1
Код, который я запускаю (скопированный, с дополнительным):
Раньше в коде не было stdafx.h или std пространства имен, поэтому мне пришлось добавить их, потому что у меня были другие ошибки. Я был бы очень признателен за любую помощь. Спасибо
Ответы (1)
103 Репутация автора
Разобрался несколько дней назад, но забыл опубликовать, как я это исправил. Я скачал 32-битную версию SFML. В свойствах необходимо убедиться, что в нем написано: «Active (win32)» или что-то в этом роде. У меня был мой на «x64», поэтому он не работал. Надеюсь, что это помогло кому-то еще с той же проблемой
Я пытаюсь использовать графическую библиотеку (SFML) для C ++, и у меня возникли проблемы. Я использую Visual Studio 2017 Я наблюдал много учебников Youtube, и получить ту же ошибку с каждым я стараюсь. Я не могу найти решение, как люди говорят «папки должны быть вместе» , которые я уже сделал: Вот ошибки я получаю:
E1696 не может открыть исходный файл stdafx.h C: Users George источник Repos Game Game main.cpp 1
E0065 ожидается «;» C: Users George источник Repos Game Game main.cpp 5
E1696 исходный файл не может открыть SFML / Graphics.hpp C: Users George источник Repos Game Game main.cpp 2
C1083 Невозможно открыть файл включать: ‘stdafx.h’: Нет такого файла или каталога C: Users ДЖОРДЖ источник Repos игры игры main.cpp 1
Код я бег (скопировано с дополнительным):
Перед тем, код не имеют stdafx.h или патезрасе, так что я должен был добавить их, потому что у меня были другие ошибки. Я бы очень признателен за любую помощь. благодаря
This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.
Answered by:
Question
I just created a new project using the existing files of an old one I was sent but when I try to build it I get this error despite the file is in the include-directory of the project.
How can this be?
Answers
Whereever u find the following statement
Place the cursor within the «stdafx.h» and right click, then Choose open Document «stdafx.h»
Tell me if it is opening or not in VS2005 If the posted one is answer, Please close the Post. — NambiRaj
- Marked as answer by Rong-Chun Zhang Friday, August 22, 2008 5:22 AM
All replies
I’m using VS2008 SP1 and the application target is a Windows Mobile device.
Can not include stdafx.h -> atlbase.h #2910
Background: the vscode-cpptools plugin is not correctly resolving default compiler defines in my cross-platform code base (separate issue).
Although, I am compiling targeting android arm, using clang, the intellisense is still trying to resolve windows headers wrapped in ifdefs.
My work around is to just include all the directories of the default include folder for msvc.
Enter my new issue.
I have foo.cpp which exists outside my workspace root, but is included in my «includePath».
In foo.cpp, the following line exists.
with the following error.
«cannot open source file «atlbase.h» (dependency of «stdafx.h»)»
If I open stdafx.h, I get the following line.
cannot open source file «atlbase.h»
I have included both of the directories that these header files exist in, and the problem persists.
These two lines have been added to my «includePath» in c_cpp_properties.json
The text was updated successfully, but these errors were encountered:
safield commented Dec 10, 2018
atlbase.h exists under atlmfc/include. That is the only place it exists under the VC directory.
The paths listed are being logged by the plugin.
Processing folder (recursive): C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 11.0/VC/ATLMFC/INCLUDE/
Processing folder (recursive): C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 11.0/VC/ATLMFC/SRC/MFC/
sean-mcmanus commented Dec 10, 2018
Those logs aren’t from the IntelliSense process (they’re for the symbol parser). If you set your loggingLevel to Debug and then open a C/C++ file you should see the includes/defines in the logs.
safield commented Dec 10, 2018
When I open foo.cpp, the only things logged are.
When I open a file within the workspace root, a bunch of includes are listed, including the pertinent ones.
include: C:PROGRAM FILES (X86)MICROSOFT VISUAL STUDIO 11.0VCATLMFCINCLUDE
include: C:PROGRAM FILES (X86)MICROSOFT VISUAL STUDIO 11.0VCATLMFCSRCMFC
sean-mcmanus commented Dec 10, 2018
I assume that’s when opening the file with the #include <atlbase.h> . I’m not sure what could cause include to not be found. Can you provide a self-contained repro project?
safield commented Dec 10, 2018
Here is a minimal project that fails to include atlbase.h on my system
IncludeTest.zip
sean-mcmanus commented Dec 10, 2018
It doesn’t repro for me with VS 2017, but I’ll see if I can get VS 2012 and/or the Android tools.
safield commented Dec 10, 2018
Turns out this is not an accurate repro case. There is just a new error causing the squiggles this time around.
cannot open source file «errno.h» (dependency of «atlbase.h»)
sean-mcmanus commented Dec 11, 2018
For me that is found in C:Program Files (x86)Windows Kits10Include10.0.17134.0ucrt , but with VS 2012 it might be at a different location. Are you able to install a newer VS? VS 2017 is able to side-by-side install on any drive, unlike older VS versions.
safield commented Dec 11, 2018 •
Here is a more accurate minimal repro example.
Observe the include in the file «someheader.h».
IncludeTest.zip
safield commented Dec 11, 2018 •
I have just installed VS2017.
-the error for #include <atlbase.h>, in «someheader.h» said that it cannot find atlbase.h.
-the path that contains «atlbase.h» was added to the includePath.
C:Program Files (x86)Microsoft Visual Studio 11.0VCatlmfcinclude
I then installed VS2017, and changed nothing for my cpptools configuration, and left VS2012 installed.
VS2017:
-the error for #include <atlbase.h>, in «someheader.h» said «cannot open source file «errno.h» (dependency of «atlbase.h»)».
-it can now find and jump to definition of «atlbase.h», in the VS2017 install folder. I did NOT include this folder in my include path.
the folder that contains errno.h is added to the includePath.
C:Program Files (x86)Microsoft Visual Studio 11.0VCinclude
Just the act of installing VS2017, changed the behaviour of the cpptools plugin.
sean-mcmanus commented Dec 11, 2018
Yeah, we automatically detect the VS 2017 include path and add it if msvc-x64 mode is being used. The missing errno.h is from a missing Windows Kits. Adding the path to the errno.h should fix the issue, although if you’re using a multi-root workspace you may need to update the settings for the other folder as well, unless you set the «C_Cpp.default.includePath» instead so it applies to multiple folders.
michelleangela commented Aug 19, 2019
Closing this issue due to long inactivity. If you update to the latest version of the C/C++ extension and your issue still persists, please re-open the issue and reply with additional information that can help us investigate the issue.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
#c #header #visual-studio-2019 #precompiled-headers #stdafx.h
#c #заголовок #visual-studio-2019 #предварительно скомпилированные заголовки #stdafx.h
Вопрос:
У меня есть два проекта A и B. В проекте A я создал исходный файл с именем Logger.cpp где у меня есть #include «stdafx.h» в части includes. Файл stdafx.h присутствует в проекте A. В свойствах проекта A у меня есть расположения заголовочных файлов проекта B в свойстве «Дополнительные каталоги включения». Когда я пытаюсь скомпилировать решение в Visual Studio 2013, оно успешно компилируется, но когда я пытаюсь перенести свое решение в Visual Studio 2019 и скомпилировать все решение или только проект A, я получаю сообщение об ошибке E1696 не удается открыть исходный файл «stdafx.h».
Что я пробовал:
- Я скопировал файл stdafx.h из проекта A в проект B, что приводит к конфликтам и не позволяет мне открывать какие-либо заголовочные файлы, включенные в файл stdafx.h.
- Я полностью удалил проект A, а затем создал новый проект C , поскольку файл stdafx.h создается при создании нового проекта.
Оба вышеуказанных подхода не решают проблему.
Я что-то здесь упускаю?
Ответ №1:
Согласно документам Microsoft, при создании нового проекта в Visual Studio в проект добавляется предварительно скомпилированный заголовочный файл с именем pch.h. (В Visual Studio 2017 и более ранних версиях файл назывался stdafx.h.)
Итак, вы могли бы установить stdafx.h
Properties->C/C ->Precompiled Header->Precompiled Header file
.