Мне передали исходный код для очень большого проекта на C++ и попросили внести небольшое изменение для поддержки некоторых новых аппаратных средств. Я не очень хорошо знаком с C++, поскольку в основном я использую C# в эти дни.Попытка построить существующий проект, много «Невозможно открыть файл include:« StdAfx.h »: нет такого файла или каталога«
Когда я построил проект я получаю 20+
Ошибка 2 ошибки C1083: Не удается открыть файл включать: 'stdafx.h': Нет такого файла или каталога D: .. thefile.cpp
С моей точки зрения, «StdAfx.h» предназначен для прекомпилированных заголовков и автоматически генерируется?
Я последовал ответ на this question:
1 Убедитесь, у вас есть файл "stdafx.h" в вашем проекте. Если вы не (например, вы его удалили), просто создайте новый временный проект и скопируйте по умолчанию;
, но при этом заметил, что созданный stdafx.h файл не имеет капитализацию ссылочного «stdafx.h»
мне удалось избавиться от одной ошибки путем копирования в генерируемый файл из нового проекта и изменения:
#include "StdAfx.h"
к:
#include "stdafx.h"
Я не могу помочь, но думаю, что этот проект был используя StdAfx.h (есть около 150 ссылок на него) по какой-то причине, и что я не должен добавлять кучу файлов stdafx.h и stdafx.cpp, разбросанных по всему месту.
Есть ли способ ссылки на глобальный файл stdafx.h, который использовался, который может вызвать эту ошибку?
Действительно ли вы намереваетесь использовать предварительно скомпилированные заголовки? Если нет, удалите этот файл и в своем проекте (если вы используете визуальную студию) отмените выбор «с использованием предварительно скомпилированных заголовков» – CoryKramer
Я предполагаю, что в проекте используются предварительно скомпилированные заголовки из-за #include. Наверное, возможно, это было не так. Я попытаюсь выполнить компиляцию без него и посмотреть, работает ли она. Редактировать: Я обнаружил, что он был настроен на «Не использовать предварительно скомпилированные заголовки», но «Precompiled Header File» был установлен в «StdAfx.h», я попытаюсь удалить это поле. – Joe