c++ - 在 C/C++ 中声明 Unix 风格

标签 c++ c unix

如何在 C/C++ 中声明所编写的代码是在 HP-UX 或 Solaris 或 AIX 中构建的?

最佳答案

我发现,至少对于 gcc 来说,解决这个问题的一个好方法是拥有这个 makefile:

defs:
    g++ -E -dM - < /dev/null

然后,:

$ make defs

应该输出所有可用的定义。

所以:

$ make defs | grep -i AIX
$ make defs | grep -i HP

应该会给你答案。 Linux 示例:

$ make defs | grep -i LINUX
#define __linux 1
#define __linux__ 1
#define __gnu_linux__ 1
#define linux 1

一旦找到您要查找的定义,您就可以在代码的开头键入:

#if !(defined(HP_DEFINE) || defined(AIX_DEFINE) || defined(SOLARIS_DEFINE))
#  error This file cannot be compiled for your plateform
#endif

关于c++ - 在 C/C++ 中声明 Unix 风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1929380/

相关文章:

c++ - 通过操纵 gl_FragDepth 将选定的线对象优先于其他对象

c++ - 在 Release模式下 boost ASIO 段错误

c - 编写库时使用 OpenMP

linux - 检查字符串长度 - Linux

linux - 从 unix shell 提示符中只选择需要的行

python - SWIG 在 Windows 中生成 C++ Python3 包装器导致断言 MSVC 2017

c++ - OpenCV:我们需要删除 CvPoint 吗?如何删除?

我可以通过线程进入应用程序来测量 Linux 中的 CPU 使用率吗

检查是否免费工作

python - 为什么 select.select() 可以处理磁盘文件而不是 epoll()?