出于某种原因,我需要在#include
中使用绝对路径作为我的系统。
使用#include "D:\temp\temp_lib\temp.h"
是否可以接受?
我尝试过这些不同的用法,但这一切似乎都有效。
#include "D:\temp\temp_lib\temp.h"
#include "D:\\temp\\temp_lib\\temp.h"
#include "D:/temp/temp_lib/temp.h"
我只是想知道我应该使用哪一个?我正在使用MSVC 2005.我想知道这三个是否仍然适用于Linux或其他环境。
我期待#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序列的解释是实现定义的。