在 windows 中包含 .h 路径,但在 visual studio 中省略 unix
Include .h path in windows but omit in unix in visual studio
我想在我的 visual studio 项目中包含 dirent.h。我希望与 unix 和 windows 兼容。这就是我考虑使用 https://github.com/tronkko/dirent 的原因。在那个项目中,文档说:
If you wish to distribute dirent.h alongside with your own source
code, then copy include/dirent.h file to a new sub-directory within
your project and add that directory to include path on Windows while
omitting the directory under Linux/UNIX. This allows your project to
be compiled against native dirent.h on Linux/UNIX while substituting
the functionality on Microsoft Windows.
在 visual studio 中执行该操作的步骤是什么? (我使用的是 2017 版本,但我想它会与旧版本相似)
用于区分#includes 的经典解决方案是使用预处理器指令,例如#if 或#ifdef。
例如,您可以使用:
#ifdef _MSC_VER
#include "stuff specific to Microsoft Visual Studio"
#else
#include "stuff not specific for Microsoft Visual Studio"
#endif
在你的情况下,你可能需要这样的东西:
#ifdef _MSC_VER
#include "msvc/dirent.h"
#else
#include <dirent.h>
#endif
我想在我的 visual studio 项目中包含 dirent.h。我希望与 unix 和 windows 兼容。这就是我考虑使用 https://github.com/tronkko/dirent 的原因。在那个项目中,文档说:
If you wish to distribute dirent.h alongside with your own source code, then copy include/dirent.h file to a new sub-directory within your project and add that directory to include path on Windows while omitting the directory under Linux/UNIX. This allows your project to be compiled against native dirent.h on Linux/UNIX while substituting the functionality on Microsoft Windows.
在 visual studio 中执行该操作的步骤是什么? (我使用的是 2017 版本,但我想它会与旧版本相似)
用于区分#includes 的经典解决方案是使用预处理器指令,例如#if 或#ifdef。
例如,您可以使用:
#ifdef _MSC_VER
#include "stuff specific to Microsoft Visual Studio"
#else
#include "stuff not specific for Microsoft Visual Studio"
#endif
在你的情况下,你可能需要这样的东西:
#ifdef _MSC_VER
#include "msvc/dirent.h"
#else
#include <dirent.h>
#endif