#include c / c ++中的绝对路径语法

时间:2012-09-24 10:05:47

标签: c++ c path include absolute

出于某种原因,我需要在#include中使用绝对路径作为我的系统。

使用#include "D:\temp\temp_lib\temp.h"是否可以接受?

我尝试过这些不同的用法,但这一切似乎都有效。

  1. #include "D:\temp\temp_lib\temp.h"
  2. #include "D:\\temp\\temp_lib\\temp.h"
  3. #include "D:/temp/temp_lib/temp.h"
  4. 我只是想知道我应该使用哪一个?我正在使用MSVC 2005.我想知道这三个是否仍然适用于Linux或其他环境。

    我期待#1在编译期间出错,但我没有得到任何错误。任何人都知道为什么会这样吗?

1 个答案:

答案 0 :(得分:11)

我知道的每个实现,当然还有MSVC 2005和Linux,允许您指定查找头文件的目录路径。您应该在目录路径列表中包含D:\ temp \ temp_lib,然后使用

#include <temp.h>

对于gcc,请使用-I 路径。对于MSVC,请参阅Where does Visual Studio look for C++ header files?

#1不是语法错误的原因是,尽管它看起来像字符串文字,但事实并非如此。规范是

#include "q-char-sequence"

q-char是

  

除换行符之外的源字符集的任何成员   和“

特别是\没有特殊含义。 q-char序列的解释是实现定义的。