Возможный дубликат:
В чем разница между #include <имя файла> и #include «имя файла»?
включить «file.h» против <файл> в чем разница?
Я сталкивался с этим пару раз при использовании внешних библиотек, и я предполагаю, что это чисто из-за моей неопытности. Мой вопрос, как говорится в заголовке, в чем разница между <> в include и «», он явно большой, так как вы не можете включать свои собственные заголовки с <> но вы можете с помощью «» и наоборот вы не можете включать заголовки, такие как <string>
с «».
В настоящее время я использую Crystal Space SDK и пытаюсь освоить его и следовать учебным пособиям. Я следовал руководству создания-внешнего-MSVC-приложения и столкнулся с этой ошибкой:
1>------ Build started: Project: NewDawn, Configuration: Debug Win32 ------
1> simple1.cpp
1>f:\project\newdawn\newdawn\include\cs\csplatform.h(26): fatal error C1083: Cannot open include file: 'csutil/win32/csconfig-msvc.h': No such file or directory
1> main.cpp
1>f:\project\newdawn\newdawn\include\cs\csplatform.h(26): fatal error C1083: Cannot open include file: 'csutil/win32/csconfig-msvc.h': No such file or directory
1> Generating Code...
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Я пошел и нашел файл csplatform.h и обнаружил, что он включает в себя файл csconfig-msvc.h, используя < >:
#if defined (CS_WIN32_CSCONFIG)
/* Use manually maintained settings when not building on environments not
* using configure (specifically, MSVC) */
# include <csutil/win32/csconfig-msvc.h>
#else
# include <csconfig.h>
#endif
Я мог бы теоретически изменить #include csutil / win32 / csconfig-msvc.h из < > to «», но я не должен был этого делать, это хорошо зарекомендовавшая себя библиотека кодов, и простейшее руководство должно работать прямо из коробки.
Я хочу знать, почему это происходит с < > а не «». Я видел, как Boost делает это, если я правильно помню.
#include <some file>
использует включенный путь поиска. #include "some file"
относительно компилируемого файла. Так что если вы хотите использовать #include <some file>
Вам нужно изменить путь поиска поиска.
Других решений пока нет …