首页 文章

在Windows中包含.h路径但在visual studio中的unix中省略[重复]

提问于
浏览
0

这个问题在这里已有答案:

我想在我的visual studio项目中包含dirent.h . 我希望兼容unix和windows . 这就是我考虑使用https://github.com/tronkko/dirent的原因 . 在该项目中,文档说:

如果您希望将dirent.h与您自己的源代码一起分发,则将include / dirent.h文件复制到项目中的新子目录,并将该目录添加到Windows上包含路径,同时省略Linux / UNIX下的目录 . 这允许您的项目在Linux / UNIX上针对本机dirent.h进行编译,同时替换Microsoft Windows上的功能 .

这是在visual studio中做到这一步的步骤? (我使用2017版本,但我认为它将与旧版本类似)

1 回答

  • 2

    用于区分#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
    

相关问题