我正在编写一个跨平台的程序.有几个地方我必须指定依赖操作系统的呼叫.
#ifdef WINDOWS
..do windows only stuff
#endif
#ifdef LINUX
..do linux only stuff
#endif
Run Code Online (Sandbox Code Playgroud)
是否有任何由编译器定义的preprocesser指令,因此在使用命令行编译器时我不必显式定义它们.即.
cl -DWINDOWS program.cpp
要么
g ++ -DLINUX program.cpp
我意识到我可以轻松编写一个makefile或者有一个自动执行此操作的shell/batch脚本.但我宁愿默认使用与编译器相同的(如果它们存在).
我在这个网站上找到了所有g ++的完整列表.
#define __HAVE_BUILTIN_SETJMP__ 1#define __unix__ 1#define unix 1#define __i386__ 1#define __SIZE_TYPE__ unsigned int#define __ELF__ 1#define __GNUC_PATCHLEVEL__ 3#define __linux 1#define __unix 1#define __linux__ 1#define __USER_LABEL_PREFIX__#define linux 1#define __STDC_HOSTED__ 1#define __EXCEPTIONS 1#define __GXX_WEAK__ 1#define __WCHAR_TYPE__ long int#define __gnu_linux__ 1#define __WINT_TYPE__ unsigned int#define __GNUC__ 3#define __cplusplus 1#define __DEPRECATED 1#define __GNUG__ 3#define __GXX_ABI_VERSION 102#define i386 1#define __GNUC_MINOR__ 2#define __STDC__ 1#define __PTRDIFF_TYPE__ int#define __tune_i386__ 1#define __REGISTER_PREFIX__#define __NO_INLINE__ 1#define _GNU_SOURCE 1#define __i386 1#define __VERSION__ "3.2.3 20030502 (Red Hat Linux 3.2.3-47.3)"并且Visual C++已经定义了Win32用于任何Widnows版本.
| 归档时间: |
|
| 查看次数: |
8226 次 |
| 最近记录: |