gpt4 book ai didi

visual-c++ - g++ 和 cl 的编译器#defines

转载 作者:行者123 更新时间:2023-12-04 06:46:18 26 4
gpt4 key购买 nike

我正在编写一个跨平台的程序。有几个地方我必须指定操作系统相关的调用。

#ifdef WINDOWS
..do windows only stuff
#endif
#ifdef LINUX
..do linux only stuff
#endif

是否有编译器定义的任何预处理器指令,因此我在使用命令行编译器时不必显式定义它们。即。

cl -DWINDOWS 程序.cpp

g++ -DLINUX程序.cpp

我意识到我可以轻松地编写一个 makefile 或一个 shell/批处理脚本来自动执行此操作。但我更愿意默认使用与编译器相同的那些(如果它们存在的话)。

最佳答案

我在 this 上找到了所有 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++ 已经为任何 Widnows 版本定义了 Win32。

关于visual-c++ - g++ 和 cl 的编译器#defines,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1106796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com