Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 06.01.2019, 12:21   #1
pucher
Пользователь
 
Регистрация: 06.01.2019
Сообщений: 12
Репутация: 10
По умолчанию c++ не видит stdafx.h, хотя он есть

Мне достались исходники небольшого проекта из нескольких файлов. При открытии его в visual studio еще до начала компиляции в редакторе кода в каждом файле подчеркивается строка
Код:
#include "stdafx.h"
Пишет:
Цитата:
cannot open source file "stdafx.h"
Сами файлы stdafx.h и stdafx.cpp присутствуют в директории проекта.
1. Как решить проблему?
2. Может ли эта проблема возникать из-за того, например, что проект был сделал в одной версии vs, а я открываю его в другой? Если да, как узнать исходную версию студии? Доступа к разработчикам проекта у меня нету. Спасибо.
pucher вне форума   Ответить с цитированием
Старый 06.01.2019, 17:59   #2
webvsoft
Форумчанин
 
Регистрация: 25.08.2018
Сообщений: 116
Репутация: 49
По умолчанию

Встречалось такое решение:
замените #include "stdafx.h" на #include "pch.h", которое является обновленным именем для предварительно скомпилированных заголовков.
__________________
Невозможно предугадать поведение интеллекта, превосходящего человеческий
webvsoft вне форума   Ответить с цитированием
Старый 06.01.2019, 19:15   #3
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,329
Репутация: 2565
По умолчанию

Чтобы это срабатало, надо будет и в проекте поменять.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 06.01.2019, 23:31   #4
_Bers
Профессионал
 
Регистрация: 16.12.2011
Адрес: Москва
Сообщений: 2,308
Репутация: 1123
По умолчанию

Цитата:
Сообщение от pucher Посмотреть сообщение
Мне достались исходники небольшого проекта из нескольких файлов.
сделай сборку.
если не соберется - выкладывай весь проект в архиве (.zip/.7z)
_Bers вне форума   Ответить с цитированием
Старый 07.01.2019, 13:05   #5
pucher
Пользователь
 
Регистрация: 06.01.2019
Сообщений: 12
Репутация: 10
По умолчанию

Цитата:
Сообщение от _Bers Посмотреть сообщение
сделай сборку.
если не соберется - выкладывай весь проект в архиве (.zip/.7z)
Немного запутался. Создал приложение console application, D:\Pr1.
В D:\Pr1\Pr1\ появились stdafx.h и Pr1.cpp. В Pr1.cpp есть строка
Код:
#include "stdafx.h"
Все компилируется.
В ту же папку добавляю sec.cpp и sec.h. В эти файлы добавляю
Код:
#include "stdafx.h"
Все компилируется.
Создаю в папке проекта поддиректорию D:\Pr1\Pr1\dir и перемещаю туда файлы sec.cpp и sec.h. Строка
Код:
#include "stdafx.h"
в этих файлах подчеркивается. Заменяю на
Код:
#include "D:\Pr1\Pr1\stdafx.h"
подчеркивание исчезает. Но, при компиляции появляется ошибка
Цитата:
Error 2 error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source? d:\pr1\pr1\dir\sec.cpp 2 1 Pr1
Что делать?
Вложения
Тип файла: rar Pr1.rar (1.49 Мб, 3 просмотров)
pucher вне форума   Ответить с цитированием
Старый 07.01.2019, 13:20   #6
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 18,638
Репутация: 3570

icq: 512-765
skype: alexp.frl
По умолчанию

А ../stdafx.h не работает?
Или <stdafx.h>?

Или используйте Force include files в настройках.
Alex11223 на форуме   Ответить с цитированием
Старый 07.01.2019, 13:26   #7
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,329
Репутация: 2565
По умолчанию

Цитата:
Сообщение от pucher Посмотреть сообщение
в этих файлах подчеркивается
Да неужели... Вы переместили файлы в другую папку и относительный путь не находит файл... Ха-ха 3 раза.

Либо, как уже сказали, правьте путь ../stdafx.h, либо добавьте в инклуд директории папку с stdafx.h
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 07.01.2019, 13:35   #8
pucher
Пользователь
 
Регистрация: 06.01.2019
Сообщений: 12
Репутация: 10
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Либо, как уже сказали, правьте путь ../stdafx.h, либо добавьте в инклуд директории папку с stdafx.h
Ни ../stdafx.h, ни ..\stdafx.h не помогает.
Ни #include "D:\\Pr1\\Pr1\\stdafx.h"
Ни #include "D:/Pr1/Pr1/stdafx.h" тоже нет.

Заработало только #include "stdafx.h" при условии указания директории в свойствах проекта.
Но, я хочу понять, почему указание полного и относительного пути не работает в данном случае.

Последний раз редактировалось pucher; 07.01.2019 в 14:20.
pucher вне форума   Ответить с цитированием
Старый 07.01.2019, 15:08   #9
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,329
Репутация: 2565
По умолчанию

Вообщем так. Для предкомпиленного заголовка stdafx.h, студия требует полного совпадения инклуда с
Код:
#include "stdafx.h"
Так что, да, остаются настройки.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 07.01.2019, 15:18   #10
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 18,638
Репутация: 3570

icq: 512-765
skype: alexp.frl
По умолчанию

Вообще у stdafx.h в Force include files вроде ж нет особых недостатков.
Сделали б уже давно по умолчанию так при включении PCH.

Как QMake.
Alex11223 на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не видит таблицу, хотя она есть tronuo Java Базы данных (JDBC, JPA, Hibernate) 0 07.06.2015 20:18
visual studio не видит заголовочный файл, хотя он есть (fatal error C1083: Cannot open include file: 'GL/glut.h': No such file or sersheg Помощь студентам 0 21.10.2013 13:04
поле не найдено в таблице, хотя оно есть Threefire БД в Delphi 6 22.09.2012 17:51
php Undefined variable, хотя она есть Dominatorsha PHP 1 31.07.2012 16:05
Интерестно а есть ли здесь хотя-бы бывшие медики vasek123 Свободное общение 12 09.06.2009 14:29


13:02.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru