出于某种原因,我需要为我的系统使用#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 会在编译过程中出现错误,但我没有得到任何结果。有人知道这是为什么吗?
最佳答案
我所知道的每个实现,当然还有 MSVC 2005 和 linux,都允许您指定要在其中查找头文件的目录路径。您应该在目录路径列表中包含 D:\temp\temp_lib,然后使用
#include <temp.h>
对于 gcc,使用 -I path。对于 MSVC,请参阅 Where does Visual Studio look for C++ header files?
#1 不是语法错误的原因是,虽然它看起来像字符串文字,但它不是。规范是
#include "q-char-sequence"
q-char在哪里
any member of the source character set except the new-line character and "
特别是,\
没有特殊含义。 q-char-sequence 的解释是实现定义的。
关于c++ - #include c/c++中的绝对路径语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12562807/