C1083: Невозможно открыть включаемый файл 'serialheader.h': такого файла или каталога нет - PullRequest
1 голос
/ 19 мая 2009

Я пишу оболочку для библиотеки, написанной на C.


Файл заголовка для этой библиотеки находится в
C: \ Projects \ SerialLibrary
Обертка находится в
C: \ Projects \ SerialLibrary \ Client \ ClrSerialLibrary

Неважно, что я делаю, VS2008 не может найти

#include "serialheader.h"

Я всегда получаю сообщение об отсутствии такого файла или каталога. Я попытался поместить жестко закодированный путь к каталогу в страницах свойств ClrSerialLibrary-> Свойства конфигурации-> C / C ++ -> Общие-> Дополнительные каталоги включения

Я тоже пробовал

#include "..\..\serialheader.h"

Я также попытался поместить копию файла заголовка в тот же каталог, что и библиотека clr. Не повезло! Помогите!

Ответы [ 2 ]

2 голосов
/ 19 мая 2009

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

1) Найдите что-то, что работает, попробуйте другие возможности, о которых вы еще не думали, например,

- #include "c:\projects\seriallibrary\serialheader.h"
- #include <serialheader.h>
- Copy serialheader.h to a known good include directory

2) Если ничего не работает, уменьшите проблему до минимума - один файл .cpp один файл .h файл

3) Получив работу, вы убедитесь, что ни вы, ни ваша среда разработки не являются иррациональными и / или сумасшедшими. На этом этапе вы будете готовы к ...

4) ... постепенно трансформируйте рабочую, но надуманную ситуацию в практическую ситуацию, которую вы действительно можете использовать. Делайте это постепенно на каждом этапе тестирования, чтобы новая установка все еще работала.

Я предполагаю, что где-то на шаге 4) у вас будет ага! момент и все станет ясно. Даже если это не так, у вас должно быть то, что работает, и вы можете использовать его в это время.

Обратите внимание, что с небольшими изменениями в деталях приведенный выше рецепт хорош для огромного разнообразия проблем, не связанных с программированием!

2 голосов
/ 19 мая 2009

А вы уже проверили все потенциальные проблемы, упомянутые на msdn?

  1. Файл не существует.
  2. Файл, подкаталог или диск доступен только для чтения.
  3. Нет прав доступа к файлу или каталогу.
  4. Недостаточно файловых дескрипторов. Закройте некоторые приложения и перекомпилируйте.
  5. Переменная окружения INCLUDE установлена ​​неправильно.
  6. Директива #include использует двойные кавычки вокруг спецификации пути, что приводит к пропуску стандартных каталогов.
  7. Вы не указали / clr, и ваша программа использует конструкции CLR.
  8. Вы попытались скомпилировать один файл в проекте без предварительной компиляции stdafx.cpp. Прежде чем вы сможете скомпилировать один файл в проекте, вам нужно скомпилировать stdafx.cpp. В случае с параметром компилятора / analysis (Enterprise Code Analysis) вам потребуется использовать тот же параметр / analysis для stdafx.cpp, который вы используете для файла .cpp.
...