我正在尝试在 Linux 上编译我的代码并创建了一个简单的 make 文件。在我的一个标题中,有一个编译时条件 #include 用于模拟 Unix 的 dirent.h 的文件。
我把这个包含在 a#if defined(_WIN32) || defined(_WIN64)
中,但是 g++ 很高兴地包含了这个文件,这导致了无穷无尽的错误。
整个区块看起来像这样:
#if defined(_WIN32) || defined(_WIN64)
#include "dirent.h"
#define strncasecmp _strnicmp
#else
#include <unistd.h>
#include <dirent.h>
#include <fcntl.h>
#include <sys/types.h>
#include <utime.h>
#endif
发生这种情况有什么明显的原因吗?