Невозможно открыть включаемый файл, но найти файл невозможно

0

Я получаю следующую ошибку:

"fatal error C1083: Cannot open include file" 

для одного из моих файлов заголовков быть #included в stdafx.h. Я установил пути включения и библиотеки в зависимости от проекта, попытался включить их в дополнительный раздел include. Кроме того, когда я

    #include <BCGCBProInc.h>

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

Что я делаю неправильно/неправильно?

  • 0
    Какой компилятор / платформа?
  • 0
    @Sean: я использую VS2012, поэтому любой C ++ MFC-компилятор, который использует Джонатана: я не понимаю, что вы говорите
Показать ещё 19 комментариев
Теги:
compiler-errors
compilation

3 ответа

0
Лучший ответ

То, что мне нужно было сделать, чтобы скомпилировать его, было изменение

    #include "BCGCBProInc.h"

к этому

    #include "C:\Program Files (x86)\BCGSoft\BCGControlBar Professional Evaluation\BCGCBPro\BCGCBProInc.h"

Я не уверен, почему, потому что я включил путь в каталоги VC++. Когда я просматриваю путь, который он меняет (x86) на% 29x86% 29, это то, что я пытаюсь направить, но это не так, потому что я вручную изменил его на (x86).

Мой план заключается в том, когда я в конечном итоге получаю то, что мне нужно сделать, я приведу библиотеки и включит в проект локально и сделаю пути относительными

  • 2
    %28x86%29 не должно быть проблемой для ВК.
  • 0
    Я сделал мой ответ, потому что это сработало, чтобы его скомпилировать. Ответы выше очень полезны и важны для того, чтобы заставить его работать.
2

1.

#include <BCGCBProInc.h>

это не то же самое, что

2.

#include "BCGCBProInc.h"

Различные варианты поиска применяются к обоим вариантам включения файла.

Патчи смотрели вверх, когда использовали вариант 1. те, которые определены как шаблоны поиска по умолчанию, такие как

  • /usr/include для систем IXish
  • $(VCInstallDir)include также называемые VC++ каталоги для VC

Пункты, используемые при использовании 2., добавляются через опцию -I (/I для VC).

  • 0
    Это помогает, но я попробовал это и все та же ошибка
  • 1
    Я стараюсь всегда это делать, но Visual Studio, кажется, не заботится. По крайней мере, до VS2012.
Показать ещё 3 комментария
1

В Visual Studio щелкните правой кнопкой мыши проект и выберите "Свойства". В левой панели выберите опцию VC++ Справочники, а затем посмотрите на папки "Включить каталоги и библиотеки" в правой панели. Убедитесь, что они используют относительные пути, а не абсолютные пути. Если они должны быть абсолютными путями, то каждая машина, на которой выполняется этот проект, должна иметь тот же самый путь. Абсолютные пути выглядят так:

D:/Development/MyProject/includes

Относительные пути можно сделать с помощью $ (ProjectDir), чтобы сделать его относительно проекта, или $ (SolutionDir), чтобы сделать его относительно решения (если оно отличается от проекта) и выглядело бы примерно так:

$(ProjectDir)../includes

или

$(SolutionDir)includes
  • 0
    Да, это то, что я в конечном итоге сделаю, но сейчас я не хочу копировать все файлы .h и библиотеки в папку проекта, пока у меня не появится то, что я хочу сделать, работая.
  • 1
    Справедливо. Похоже, что могло быть несоответствие между путем на машине, на которой он был создан, и путем на вашей машине. В любом случае ваш план перемещения необходимых файлов в локальный каталог с относительными путями должен решить эту проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню