可能重复:
#include <文件名> 和#include “文件名”有什么区别?
include “file.h” 与 <file> 有什么区别?
我在使用外部库时遇到过几次这种情况,我认为这纯粹是因为我的经验不足。正如标题所说,我的问题是在包含和“”中使用 <> 有什么区别,这显然是一个很大的问题,因为您不能使用 <> 包含自己的标题,但您可以使用“”,反之亦然'不包括<string>
带有“”的标题。
我目前正在使用 Crystal Space SDK,我正在努力掌握它并遵循教程。我正在遵循 Creating-External-MSVC-Application Howto 指南并遇到此错误:
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 从 < > 更改为 " " 但我不应该这样做,这是一个完善的代码库,最简单的教程应该可以直接使用。
我想知道为什么它用 < > 而不是“”。如果我没记错的话,我看到 Boost 也这样做了。