2013-01-01 55 views
1

Possible Duplicate:
What is the difference between #include <filename> and #include 「filename」?
include 「file.h」 vs <file> what is the difference?在MSVC

之間<>和「」的區別,我使用外部庫,我以爲,這是因爲我缺乏經驗的純粹當遇到這種幾次。標題中提到的問題是在include和「」中使用<>的區別是什麼,它顯然是一個很大的區別,因爲您不能在<>中包含自己的標題,但是您可以使用「」,反之亦然,您可以不包括帶「」的標頭,如<string>

我現在正在使用Crystal Space SDK,我正在努力通過掌握它並遵循教程。我是繼創建,外部 - MSVC-應用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也這麼做。

+1

[include「file.h」vs 有什麼區別?](http://stackoverflow.com/questions/8160089/include-file-h-vs-file-what-is-the-difference)是您的包含路徑設置正確嗎? – DCoder

+0

將Crystal Space SDK包含文件的路徑添加到項目包含路徑中。 –

+0

我相信包含路徑是正確的,我有VC++目錄包含目錄字段中的/ include文件夾。 –

回答

0

#include <some file>使用包含搜索路徑。 #include "some file"與正在編譯的文件有關。所以如果你想使用#include <some file>你需要修改包含搜索路徑。

+1

按照標準的規定,如果#include「某個文件」失敗,則回退嘗試#include 。因此#include「windows.h」會成功。 – user515430

+0

而你如何修改包含搜索路徑? –

+0

在項目配置中的編譯器設置中。 –