Visual Studio尝试包括linux头文件,尽管if语句

Visual Studio trying to include linux headers despite if statement

本文关键字:文件 尽管 if 语句 linux Studio 包括 Visual      更新时间:2023-10-16

我正在尝试创建一个健壮的头文件,将在windows和linux上编译而无需更改。为此,我在include中有一个if语句,看起来像

#if (!defined(__WINDOWS__))
#include <sys/time.h>
#include <unistd.h>
#include <pthread.h>
#endif

我遇到的问题与visual studio仍然试图包括这些头,尽管if语句导致错误,如

error C1083: Cannot open include file: 'sys/time.h'

是否有一种方法来解决这个问题,而不从头中删除所有的linux代码块?

__WINDOWS__windows.h定义。这是一个圆。用这个代替:

#if defined(_WIN32)
#   if defined(_WIN64)
        /*64 bit windows*/
#   else
        /*32 bit windows*/
#   endif
#endif

是的,_WIN32 是在64位windows上定义的。我不骗你。