JME*_*JME 2 c++ linux windows compiler-errors visual-studio-2010
我试图创建一个强大的头文件,将在Windows和Linux上编译而无需更改.为此,我在我的包含中有一个if语句
#if (!defined(__WINDOWS__))
#include <sys/time.h>
#include <unistd.h>
#include <pthread.h>
#endif
Run Code Online (Sandbox Code Playgroud)
尽管if语句导致错误,我仍然遇到Visual Studio仍然试图包含这些标题的问题
error C1083: Cannot open include file: 'sys/time.h'
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题,而无需从头文件中删除所有linux代码块?
__WINDOWS__由...定义windows.h.所以你有一个循环.请改用:
#if defined(_WIN32)
# if defined(_WIN64)
/*64 bit windows*/
# else
/*32 bit windows*/
# endif
#endif
Run Code Online (Sandbox Code Playgroud)
是的,_WIN32 是在64位窗口上定义的.我没骗你.