Visual studio не видит include файлы

Обновлено: 01.07.2024

Я создал пустой проект Demo в Visual Studio 2008 и добавил некоторые мои проекты в мое решение. Включен "MyHeader.h" (другой заголовок проекта) в файл main.cpp, который находится в "Демо". Также добавлен путь к файлам заголовков в разделе "Инструменты/Опция/VС++ Каталоги/Включить файлы". Но intellisense говорит: "Файл" MyHeader.h "не найден в текущем каталоге исходного файла или в строках системы сборки. "

Как проблема может быть устранена? Спасибо.

Если вы выберете Project и затем All Files в меню, все файлы должны отображаться в Обозревателе решений, которые физически находятся на вашей карте проекта, но не включены (пока) в ваш проект. Если вы щелкните правой кнопкой мыши файл, который хотите добавить в Обозреватель решений, вы можете его включить.

Удалите файл .sdf, находящийся в каталоге решений. Это просто база данных Intellisense, и Visual Studio будет воссоздавать ее при следующем открытии этого решения. Этот db может быть поврежден и привести к тому, что среда IDE не сможет найти вещи, и поскольку компилятор сам генерирует эту информацию для себя на лету, это не будет затронуто.

Если это так, то только IDE указывает, что он не может найти включенные файлы, но компиляция прошла успешно, проблема в том, что IntelliSense не полностью обновляется с недавними изменениями. Это может произойти специально, когда включайте существующие проекты, на мой собственный опыт. Удаление файла .sdf(= база данных IntelliSense), созданного в вашем каталоге решений, заставляет Visual Studio регенерировать его, чтобы он обновлялся снова. Просто делать "чистую", вероятно, сделает то же самое, но занимает больше времени, так как все будет генерироваться снова.

Я бы никогда не рекомендовал буквы жесткого кодирования в любом аспекте ваших файлов проекта; либо использовать относительные пути, макросы, переменные окружения или некоторую смесь дерева для любой постоянной ситуации. Однако в этом случае я работаю в некоторых временных проектах, где в краткосрочной перспективе необходимы абсолютные пути. Невозможно щелкнуть правой кнопкой мыши, чтобы открыть файлы, было крайне неприятно, и, надеюсь, это поможет другим.

Если визуальная студия говорит, что вы пропустили какой-то файл в текущей папке с исходным файлом, есть одно решение, которое я использовал. Просто щелкните правой кнопкой мыши файл, который вы хотите добавить, и выберите Open Document , если он действительно не существует, тогда вы должны увидеть что-то вроде cannot find file in the source file path = "somewhere in your computer" , затем то, что вы можете сделать, это сначала добавить исходный файл в этот путь и посмотреть если он работает.

По моему опыту, с VS2010, когда включенные файлы не могут быть найдены во время компиляции, чистая, тогда сборка обычно исправляет проблему. Редактор не так редко может открыть файл include, а затем компилятор объявит, что он не может найти тот самый файл, даже если он открыт на экране!

Вот как я решил эту проблему.

введите описание изображения здесь

  • Щелкните правой кнопкой мыши все файлы в обозревателе решений и выберите "Включить в проект" во все файлы, которые вы хотите включить.

введите описание изображения здесь

Это случилось со мной только сейчас, после выключения и перезагрузки компьютера. В конце концов я понял, что архитектура каким-то образом была изменена на ARM с x64.

Посмотрите другие вопросы по меткам c++ include visual-studio-2008 или Задайте вопрос

i


794 2 2 золотых знака 12 12 серебряных знаков 24 24 бронзовых знака

Видимо, написать 5 слов про ошибку было бы полезнее многисленного повторения "магической фразы" - Вас бы меньше минусовали. Теперь про ошибку: у Вас "студия" не видит include - файлов. Очень короткая теория: сборка программы состоит из компиляции и линковки. компиляция требует "видимости" (то есть зания, откуда взять) include - фалов. Линковка требует того же для библиотек - например, стандартной библиотеки c++.

как ни странно, на первом этапе освоить все эти премудрости проще в командной строке. Это не потому, что мы здесь все олдскульные, а потому, что VS - это очень мощная среда программирования, которая многое скрывает "под капотом". И там есть ОГРОМНОЕ кол-во неочевидных настроек, с которыми Вы не сможете разбраться до тех пор, пока не будете детально понимать, что нужно сделать для сборки проекта.

Есть несколько путей: 1) можно попробовать настроить VS. Гуглить по словам "visual studio c++ include path"

2) можно делать всё из командной строки. Для этого понадобится установить компилятор и дебаггер. Скорее всего, MS - овский Вам не полоёдет. Советую взять пакет MSYS2, вся уствновка в винде сводится к установке пакета MSYS2 и вводу в окне pacman'а команд

3) Можно использовать более "легковесную" среду разработки, у которой не так много неочевидных настроек. Например, Visual studio code или code blocks. Но нужно помнить, что эти среды разработки представляют из себя только "клей" для консольных утилит: у них нет своего компилятора и дебаггера, они просто правильным образом вызывают уже установленные в систему. то есть пункт 2 из моего списка Вам для этого будет необходим. И настроить такую легковесную среду разработки под свою систему - это тоже отдельная задача - но на решена много раз, есть даже видео на ютьюбе.

Я создал пустой "демонстрационный" проект в Visual Studio 2008 и добавил некоторые существующие проекты в свое решение. Включен "Файл Myheader.h " (заголовок другого проекта) в main.cpp-файл, который находится в "Demo". Также добавлен путь к заголовочным файлам в разделе" Tools/Option/VC++ Directory/Include files". Но intellisense говорит: "файл 'MyHeader.h ' не найден в каталоге текущего исходного файла или в системных путях сборки. "

Как проблема может быть исправлена? Спасибо.

Если вы выберите Project а то All Files в меню все файлы должны отображаться в обозревателе решений, которые физически находятся на карте проекта, но еще не включены в проект. Если вы щелкните правой кнопкой мыши файл, который хотите добавить в Обозреватель решений, вы можете включить его.

удалить .sdf-файл, который находится в каталоге решения. Это просто база данных Intellisense, и Visual Studio воссоздаст ее при следующем открытии этого решения. Эта БД может быть повреждена и привести к тому, что IDE не сможет найти вещи, и поскольку компилятор генерирует эту информацию для себя на лету, это не повлияет.

Если это так, что только IDE указывает, что он не может найти включенные файлы, но компиляция успешна, проблема просто в том, что IntelliSense не полностью в курсе последних изменений. Это может произойти именно при включении существующих проектов, по моему собственному опыту. Удаление .sdf-файл (= база данных IntelliSense), созданный в каталоге решения, заставляет Visual Studio восстанавливать его, чтобы он снова был обновлен. Просто делать "чистый", вероятно, будет делать то же самое, но занимает больше времени, так как все будут сгенерированы снова.

Я бы никогда не рекомендовал буквы жесткого диска в любом аспекте ваших файлов проекта; либо использовать относительные пути, макросы, переменные среды или некоторые сочетания дерева для любой постоянной ситуации. Однако в этом случае я работаю в некоторых временных проектах, где абсолютные пути были необходимы в краткосрочной перспективе. Не имея возможности щелкнуть правой кнопкой мыши, чтобы открыть файлы, было очень неприятно, и, надеюсь, это поможет другим.

попробуйте добавить файл заголовка в файлы вашего проекта. (щелкните правой кнопкой мыши проект - > добавить существующий файл).

Если visual studio говорит, что вы пропустите какой-то файл в текущей папке исходного файла, есть одно решение, которое я использовал. Просто щелкните правой кнопкой мыши файл, который вы хотите добавить, и выберите Open Document , если он действительно не существует, то вы должны увидеть что-то вроде cannot find file in the source file path = "somewhere in your computer" , тогда вы можете сначала добавить исходный файл в этот путь и посмотреть, работает ли он.

Это случилось со мной только что, после выключения и перезагрузки компьютера. В конце концов я понял, что архитектура каким-то образом была изменена на ARM из x64.

по моему опыту, с VS2010, когда include-файлы не могут быть найдены во время компиляции, выполняя очистку, тогда build обычно устраняет проблему. Не так уж редко редактор может открыть файл include, а затем компилятор объявить, что он не может найти этот самый файл, даже когда он открыт на экране!

Это может быть очень простой вопрос, но я не смог его понять, поэтому любая помощь приветствуется.

У меня есть заголовок, который находится в общей папке, потому что я хочу использовать его, например, в нескольких проектах:

C: \ пользователь \ geninclude \ программа \ header.h

Я создал новый пустой проект с очень простым main, в основном я поставил

Затем я перешел к свойствам проекта, и в VC ++ во включенных каталогах добавил C: \ user \ geninclude \

Но когда я попытался собрать программу, программа сообщает мне, что не может найти header.h, потому что его нет в текущем каталоге или в пути к системе сборки.

Я также пробовал в свойствах проекта в общих дополнительных каталогах C / C ++ добавить C: \ user \ geninclude \, но все еще та же ошибка.

Я знаю, что мне не хватает чего-то простого, но я не знаю чего, я новичок в этом, просто учусь.

Для справки я использую Visual Studio 2013.

Спасибо заранее за вашу помощь.

ОБНОВЛЕНИЕ: Спасибо всем за ваши добрые ответы, я перепробовал все, что вы мне сказали (проверьте выпуск и отладку в обоих случаях, измените / на \ и <> на "", и дважды проверьте заголовок, но система все равно не видит это действительно очень странно. Я буду пытаться .

Пожалуйста, проверьте, действительно ли ваш файл является файлом заголовка, иначе он не появится в include.

Что вы также можете сделать (в качестве обходного пути, если вам нужен этот метод быстро), так это поместить файл заголовка (или папку с файлами заголовков) в папку «include» Visual Studio. Путь должен выглядеть так: «C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ include»

PS: Вам также следует проверить конфигурацию свойств при добавлении пути к каталогам включения VC ++. Вы можете добавить путь к конфигурации отладки и попытаться запустить ее в режиме выпуска.

Другая вещь, которая может привести к тому, что включаемые файлы не будут захвачены, - это разница между платформой, установленной на страницах свойств вашего проекта c ++, и вашей «платформой активного решения» в диспетчере конфигурации. Можно просто проверить, установлен ли один на x64, а другой на x86

enter image description here

Для пользователей Visual Studio 2019:

Обоснование: вы могли загрузить проект из Интернета, и они использовали другую версию Visual Studio в качестве платформы .

Обоснование: вы могли загрузить проект из Интернета, и они использовали версию SDK 8.0 , в то время как у вас есть SDK 10.0 0

Ты действительно хочешь

Свойства проекта -> Свойства конфигурации -> C / C ++ -> Дополнительные каталоги включения

Проверьте, правильно ли вы указали путь. например, я написал cpp вместо c ++ и поэтому много страдал и потратил, как час, на поиски тут и там.

Как решить проблему? Благодарю.

Решение

Если вы выбираете Project а потом All Files в меню все файлы должны отображаться в обозревателе решений, которые физически находятся на карте вашего проекта, но не (еще) включены в ваш проект. Если вы щелкнете правой кнопкой мыши по файлу, который хотите добавить в обозревателе решений, вы можете включить его.

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

Удалите файл .sdf, который находится в каталоге вашего решения. Это просто база данных Intellisense, и Visual Studio создаст ее заново при следующем открытии этого решения. Эта база данных может быть повреждена и привести к тому, что среда IDE не сможет что-то найти, и, поскольку компилятор генерирует эту информацию для себя на лету, это не будет затронуто.

Если это так, что только IDE указывает, что не может найти включенные файлы, но компиляция прошла успешно, проблема заключается в том, что IntelliSense не полностью соответствует последним изменениям. Это может произойти именно при включении существующих проектов, исходя из моего собственного опыта.
Удаление файла .sdf (= база данных IntelliSense), созданного в каталоге решений, вынуждает Visual Studio его регенерировать, чтобы он снова обновлялся. Простое выполнение «чистого», вероятно, будет делать то же самое, но занимает больше времени, так как все будет сгенерировано снова.

Я никогда не рекомендовал бы жестко кодировать буквы дисков в любом аспекте ваших файлов проекта; используйте относительные пути, макросы, переменные окружения или некоторую смесь дерева для любой постоянной ситуации. Однако в этом случае я работаю над некоторыми временными проектами, где в краткосрочной перспективе необходимы абсолютные пути. Отсутствие возможности щелкнуть правой кнопкой мыши, чтобы открыть файлы, было крайне неприятно, и, надеюсь, это поможет другим.

Это случилось со мной только сейчас, после выключения и перезагрузки компьютера. В конце концов я понял, что архитектура была каким-то образом изменена на ARM с x64.

Если Visual Studio сообщает, что вы пропустили какой-то файл в текущей папке с исходными файлами, я использовал одно решение. Просто щелкните правой кнопкой мыши файл, который вы хотите добавить, и выберите Open Document , если он действительно не существует, то вы должны увидеть что-то вроде cannot find file in the source file path = "somewhere in your computer" затем вы можете сначала добавить исходный файл в этот путь и посмотреть, работает ли он.

Попробуйте добавить файл заголовка к файлам вашего проекта. (щелкните правой кнопкой мыши на проекте -> добавить существующий файл).

По моему опыту, с VS2010, когда включаемые файлы не могут быть найдены во время компиляции, выполняется чистка, тогда сборка обычно решает проблему. Редактор нередко может открыть включаемый файл, а затем компилятор объявить, что он не может найти тот самый файл, даже если он открыт на экране!

Читайте также: