1

可能重复:
#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 也这样做了。

4

1 回答 1

0

#include <some file>使用包含搜索路径。#include "some file"相对于正在编译的文件。所以如果你想使用#include <some file>你需要修改包含搜索路径。

于 2013-01-01T16:43:48.770 回答