Tooprogram.ru

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Include stdafx h ошибка

Include stdafx h ошибка

1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
FAQ Раздела Обновления для FAQ Раздела Поиск по Разделу MSDN Library Online

#include «stdafx.h»
#include «MemDC.h»
#include «GridCtrl.h»

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
.
и т.д.

Файл «GridCtrl.h» в начале своём имеет следующее:

#if !defined(AFX_GRIDCTRL_H__519FA702_722C_11D1_ABBA_00A0243D1382__INCLUDED_)
#define AFX_GRIDCTRL_H__519FA702_722C_11D1_ABBA_00A0243D1382__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#include «CellRange.h»
#include «GridCell.h»
#include
.
и т.д.

Запускаю на компиляцию, а компилятор сообщает, что не может открыть файл «stdafx.h».

e:processingclassesgridctrlgridctrl.cpp(172) : fatal error C1083: Cannot open include file: ‘stdafx.h’: No such file or directory

Этот же файл «GridCtrl.cpp» нормально компилится в составе другого проекта — «Project2».
Значит, скорее всего, причина проблемы — в настройках проекта «Project1»,
но что именно может помешать компилятору видеть файл «stdafx.h»,
находящийся в рабочей директории проекта — ума не приложу.
При этом никакие другие файлы с именем «stdafx.h» из других директорий в проект не включены.

Моё временное решение — в настройках компилятора
Tools->Options->Directories->Include Files
явным образом указал рабочую директорию проекта «Project1»,
после чего компиляция проходит успешно, но такое решение мне не подходит,
потому что другие проекты в этом случае начинают брать «Include Files»
из рабочей директории проекта «Project1», а это недопустимо.

Вот такая ерунда, помогите советом, пожалуйста. Буду очень благодарен.

include stdafx h ошибка

Я новичок в программировании на C ++ и пытаюсь научиться самостоятельно через веб-сайты (learncpp.com), хотя я уже застрял на компиляции моей первой программы = (. Они используют Visual Studio для программирования своего кода, и поскольку я использую macbook, я просто используйте vi и терминал (или я должен использовать что-то еще?)

Вот программа helloworld.cpp, которую я написал на основе учебника:

когда я скомпилировал (gcc -Wall hello.cpp) я получаю ошибку:

Кто-нибудь может дать мне понимание того, как это исправить?

Решение

  1. stdafx.h это предварительно скомпилированный заголовок, используемый Visual Studio, вам это не нужно.
  2. Вы, кажется, пропустили int main() функция
  3. это std::endl не std::end1

Так что-то вроде этого:

Другие решения

Две проблемы:
а) stdafx.h не нужен (как отмечали другие).
б) «end1» должно быть «endl» (обратите внимание на букву «l» вместо числа «1»).

stdafx.h это предварительно скомпилированный заголовочный файл, специфичный для Visual Studio.
Файл скомпилированного заголовка бесполезен, если вы не столкнетесь с медленным временем компиляции. В вашей программе они вам вообще не нужны, так что вы можете удалить это, и все будет хорошо.

Вы можете догадаться, если это не нужно, то почему мы их включаем?

Я объясню это:
Всякий раз, когда мы добавляем заголовочные файлы ( #include ), Компилятор будет проходить через него, изучать его и затем компилировать заголовочный файл всякий раз, когда CPP-файл компилируется.

Этот процесс повторяется для каждого файла CPP с включенным заголовочным файлом.

В случае, если у вас есть 1000 файлов CPP в проекте, который должен включать заголовочный файл xyz.h, компилятор скомпилирует xyz.h подать 1000 раз. это может занять заметное время.

Чтобы избежать этого, компилятор дает нам возможность «предварительно скомпилировать» заголовочный файл, чтобы он компилировался только один раз, чтобы ускорить время компиляции.

В visual studio C++, при создании нового проекта, вместо #include (как в примерах) стоит #include . Если его заменить на #include , то получается ошибка компиляции.

Можно это как-то изменить?

2 ответа 2

Это особенность Visual Studio, которая может ускорять сборку проекта. Начинающих только сбивает с толку. Рекомендую её просто отключить, только и всего. Тогда все будет работать как по учебнику.

Для этого зайдите в свойства проекта (правая кнопка по проекту в solution explorer, properties) и в Precompiled Headers отключите их как показано на рисунке:

Visual Studio использует #include для реализации предкомпилированных заголовков — то есть, для ускорения компиляции. #include должно быть первой существенной строкой файла (то есть, непустой и не комментарием).

Если вам нужно указать #include , укажите его следующей строкой.

Я бы не рекомендовал отказываться от #include и предкомпилированных заголовков. Правильное использование предкомпилированных заголовков улучшает время компиляции, особенно в больших проектах.

Как исправить ошибку «stdio.h: No such file or directory »?

Понять почему она возникает:
— запустить компиляцию с опцией -v: gcc -v helloworld.c -o helloworld
— найти в выводе строки

Cannot open include file: ‘stdio.h’ — Visual Studio Community 2017 — C++ Error

I am trying to Build a Solution on Visual Studio Community 2017, but I keep getting the error «Cannot open include file: ‘stdio.h’ «. I’ve read through several similar questions, but still can’t fix this problem. Looks like the stdio.h file is called in the stdafx.h file. Below are more details. Any suggestions? (I can’t embed images yet, so please click on the links for screenshots.)

System details: Windows 10
Visual Studio Community 2017 v.15.2 (26430.6)
— Installed Desktop Development with C++ (Screenshot: Installation list)

Step 1: I wrote the famous Hello World program in C++.

Step 2: I clicked on Build > Build Solution.

Problem: ‘stdio.h’: No such file or directory. Full Error:

Troubleshooting details/Things I’ve tried:

  1. Configuration Properties > VC++ Directories
    Include Directories $(VC_IncludePath);$(WindowsSDK_IncludePath);
  2. Screenshot: Solution Explorer (files in the project)

Code in stdafx.cpp file:

Code in stdafx.h file:

NOTE: the #include for and both have the red squiggle line underneath, and says «cannot open source file».
TRIED: I tried removing the last two lines, but then I got more errors.

TRIED: Since many suggested that stdafx.h is not required, I tried removing just the first line, #include «stdafx.h» . But in order for this to work I had to do a little more. SEE ANSWER BELOW.

Создан 27 май. 17 2017-05-27 17:41:03 dahiana

Well, start by removing the stdafx.h include since it is non-standard and complete *unnecessary* in VS2017. – DeiDei 27 май. 17 2017-05-27 17:43:39

Disable precompiled header and remove stdafx*. – user2672107 27 май. 17 2017-05-27 18:14:06

@DeiDei Oh I actually tried that. I’ll add it above. In a way this did not work for me, because I only removed that line, ‘#include «stdafx.h»‘. I had to do a little more, which is what I think @manni66 was suggesting. First, I set my options to ignore the precompiled headers by following the instructions [here](https://docs.microsoft.com/en-us/cpp/build/reference/y-ignore-precompiled-header-options). Then, I removed that line in the code. Thanks everyone for their input! – dahiana 27 май. 17 2017-05-27 20:12:27

Either way this is actually a bit weird, as must exist and work in any correctly configured compiler, even in C++ mode. – Paul Stelian 27 май. 17 2017-05-27 20:19:15

You may want to consider ‘#include ‘. – Thomas Matthews 27 май. 17 2017-05-27 20:40:04

@PaulStelian if that’s the case, perhaps my error was mostly caused by my Windows SDK install not working well with my Visual Studio install. See answer below. – dahiana 27 май. 17 2017-05-27 20:47:50

3 ответа

There are three ways to solve this issue.

  1. Ignore Precompiled Headers #1
    Steps: Project > Properties > Configuration Properties > C/C++ > Command Line > in the Additional Options box add /Y-. (Screenshot of Property Pages) > Ok > Remove #include «stdafx.h»
  2. Ignore Precompiled Headers #2
    Steps: File > New > Project > . > In the Application Wizard Window click Next > Uncheck the Precompiled Header box > Finish > Remove #include «stdafx.h»

Reinstall Visual Studio
This also worked for me, because I realized that maybe there was something wrong with my Windows SDK. I was using Windows 10, but with Windows SDK 8.1. You may have this problem as well.
Steps: Open Visual Studio Installer > Click on the three-lined Menu Bar > Uninstall > Restart your computer > Open Visual Studio Installer > Install what you want, but make sure you install only the latest Windows SDK 10, not multiple ones nor the 8.1.

The first time I installed Visual Studio, I would get an error stating that I needed to install Windows SDK 8.1. So I did, through Visual Studio Installer’s Modify option. Perhaps this was a problem because I was installed it after Visual Studio was already installed, or because I needed SDK 10 instead. Just to be safe I did a complete reinstall.

Создан 27 май. 17 2017-05-27 20:44:38 dahiana

The problem with Option #1 is that you have to do this for every project. If I find a better solution, I will post it here. – dahiana 27 май. 17 2017-05-27 20:58:13

Got same problem with project porting from VS2013 to VS2017,
Fix: change «Properties->General->Windows SDK Version» to 10

Создан 26 июн. 17 2017-06-26 06:48:04 Maxim Akristiniy

That worked fo me. Thanks! I would also add that these properties can be reached by right clicking on the project in the solution explorer. – Vardit 18 июл. 17 2017-07-18 04:26:49

Not sure why your answer wasn’t chosen as correct, worked fine for me. – Stephen Vernyi 03 фев. 18 2018-02-03 08:04:24

Faced the problem of missing stdlib.h and stdio.h (and maybe more) after installing VS2017 Community on a new computer and migrating a solution from VS2013 to VS2017.

Used @Maxim Akristiniy’s proposal, but still got error message regarding toolset compatibility. However VS itself suggested to do solution retarget by right-clicking on the solution in Solution Explorer, then selecting Retarget solution from the menu and the updated Windows SDK Version from the drop-down list.

Now my projects build w/o a problem.

Note that you may need to make the project your startup project for the retargeting to catch.

Создан 20 июл. 17 2017-07-20 21:37:55 ysap

I’ve noticed (depressingly) that sometimes one has to exit Visual Studio and restart it after any of this fiddling. – HostileFork 07 фев. 18 2018-02-07 10:45:33

Include stdafx h ошибка

Answered by:

Question

i m a new user of microsoft visual studio c++ express edition 2008.whenever i want to build and run a simple program like this.
/ ex1.cpp : Defines the entry point for the console application.
//

#include «stdafx.h»
#include

int _tmain(int argc, _TCHAR* argv[])
<
std::cout
#include

/*
This will pop up a small box with «Hello World» as the text.
@author: Gavin Page, gsp8334@cs.rit.edu
@date: 28 November 2005
*/
int main( int argc, char** argv ) <
//declare for the height and width of the image
int height = 320;
int w > //specify the point to place the text
CvPoint pt = cvPoint( height/4, width/2 );
//Create an 8 bit, 3 plane image
IplImage* hw = cvCreateImage(cvSize(height, width), 8, 3);
//initialize the font
CvFont font;
cvInitFont( &font, CV_FONT_HERSHEY_COMPLEX,
1.0, 1.0, 0, 1, CV_AA);
//place the text on the image using the font
cvPutText(hw, «Hello World», pt, &font, CV_RGB(150, 0, 0) );
//create the window container
cvNamedWindow(«Hello World», 0);
//display the image in the container
cvShowImage(«Hello World», hw);
//hold the output windows
cvWaitKey(0);
return 0;
>
then the error occurs again when i try to build it,such as
—— Build started: Project: test1, Configuration: Debug Win32 ——
Compiling.
test1cfile.cpp
e:testtest1test1test1test1cfile.cpp(1) : fatal error C1083: Cannot open include file: ‘cv.h’: No such file or directory
Build log was saved at «file://e:testtest1test1test1DebugBuildLog.htm»
test1 — 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

for this program i configure 2008 express as

Project

Open Visual Studio

New -> Project -> Win32 Console Application

In the project’s settings, Configuration Properties -> C/C++ -> General -> Additional Include Directories add

Library files

In Configuration Properties -> Linker -> Input -> Additional Dependencies add

«C:Program FilesOpenCVlibcv.lib“
«C:Program FilesOpenCVlibcvaux.lib“
«C:Program FilesOpenCVlibcxcore.lib“
«C:Program FilesOpenCVlibcvcam.lib“
«C:Program FilesOpenCVlibhighgui.lib»
i’v already checked the correct paths,the location of the folders which are mentioned in the paths,but the error appears again and again.plz help me.i want to know the exact reason,because i’ve done everything i could.please,please someone helps me.

  • Edited by ratri Sunday, January 3, 2010 7:12 PM

Answers

  • Proposed as answer by Nikita Leontiev Thursday, January 7, 2010 10:09 AM
  • Marked as answer by Wesley Yao Friday, January 8, 2010 3:33 AM

All replies

yes. stdafx.h header exists in my project.in spite of this, errors happen.

And does your project have precompiled headers set in

Project Properties->Configuration Properties->C/C++->Precompiled Headers

?
David Wilkinson | Visual C++ MVP

it is in 1st program after the line-» / ex1.cpp : Defines the entry point for the console application.» no,my project does not have precompiled headers set in.if it is needed,then would you kindly tell me,what is it? and how can i use it? please help me.

Actually, I was asking where in the file system it is?

You can read about precompiled headers here:

But I think it will be easier if you just start over:

Create a new Win32 console application. By default it should have precompiled headers enabled, and it should have files stdafx.h and stdafx.cpp in the project directory. Before you do anything, try to compile it.

Do you get the errors now?

David Wilkinson | Visual C++ MVP

  • Proposed as answer by Nikita Leontiev Thursday, January 7, 2010 10:09 AM
  • Marked as answer by Wesley Yao Friday, January 8, 2010 3:33 AM

Try running with Ctrl-F5.

Or add a line at the end of your program before the final return such as:

Hello,thank you for giving me a such a helpful solution. My first sample program is running.
but when I configure microsoft visual studio c++ express edition 2008 to use open cv 2.0 and try a sample program like.
#include
#include

/*
This will pop up a small box with «Hello World» as the text.
@author: Gavin Page, gsp8334@cs.rit.edu
@date: 28 November 2005
*/
int main( int argc, char** argv ) <
//declare for the height and width of the image
int height = 320;
int w > //specify the point to place the text
CvPoint pt = cvPoint( height/4, width/2 );
//Create an 8 bit, 3 plane image
IplImage* hw = cvCreateImage(cvSize(height, width), 8, 3);
//initialize the font
CvFont font;
cvInitFont( &font, CV_FONT_HERSHEY_COMPLEX,
1.0, 1.0, 0, 1, CV_AA);
//place the text on the image using the font
cvPutText(hw, «Hello World», pt, &font, CV_RGB(150, 0, 0) );
//create the window container
cvNamedWindow(«Hello World», 0);
//display the image in the container
cvShowImage(«Hello World», hw);
//hold the output windows
cvWaitKey(0);
return 0;
>
then the error occurs again when i try to build it,such as
—— Build started: Project: helloworld, Configuration: Debug Win32 ——
Compiling.
stdafx.cpp
Compiling.
hellowordtest.cpp
c:documents and settingsratrimy documentsvisual studio 2008projectshelloworldhelloworldhellowordtest.cpp(2) : fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add ‘#include «StdAfx.h»‘ to your source?
helloworld.cpp
c:documents and settingsratrimy documentsvisual studio 2008projectshelloworldhelloworldhelloworld.cpp(5) : fatal error C1083: Cannot open include file: ‘cv.h’: No such file or directory
Generating Code.
Build log was saved at «file://c:Documents and SettingsratriMy DocumentsVisual Studio 2008ProjectshelloworldhelloworldDebugBuildLog.htm»
helloworld — 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

When i creat this sample program I use

New -> Project -> Win32 Console Application

In the project’s settings, Configuration Properties -> C/C++ -> General -> Additional Include Directories add

C:Program FilesOpenCV2.0includeopencvcvcam
I’v already checked the correct paths,the location of the folders which are mentioned in these paths,

Library files

In Configuration Properties -> Linker -> Input -> Additional Dependencies add

Читать еще:  Stack trace ошибка в сталкере
Ссылка на основную публикацию
Adblock
detector