【发布时间】:2013-06-14 17:17:52
【问题描述】:
在 C++ 中是否可以在编译时检查具有给定名称的文件是否包含包含路径。
我正在尝试建立一个库,该库从一个名为 config.h 的用户创建的文件中获取编译器设置。如果文件不存在,则库将默认为可工作状态。
我想做这样的事情
#IFINCLUDED config.h
# include config.h
#else
# define defaultLibrarySettings
#endif
我想一个解决方法是做类似的事情:
#include "config.h
#ifndef defaultLibrarySettings
# define defaultLibrarySettings
#endif
但是用户仍然需要一个“config.h 文件”,否则他们将得到一个未解决的包含。
最后的想法是做类似的事情
#ifdef USE_EXTERNAL_SETTINGS
# include "config.h"
#else
# define defaultLibrarySettings
#endif
但是,这将要求用户在每次包含我的库时#define USE_EXTERNAL_SETTINGS。
TLDR:有没有一种简单的方法来检查包含路径中是否存在文件,如我的第一个示例所示?
【问题讨论】:
标签: c++ include c-preprocessor include-path