<分区>
我是 C++ 的新手,我有一个文件必须在 Linux 和 Windows 中构建。
喜欢:
if_Windows
#include <Include1>
if_Linux
#include <Include2>
有没有可能做这样的事情?你是怎么做到的?
标签 c++
<分区>
我是 C++ 的新手,我有一个文件必须在 Linux 和 Windows 中构建。
喜欢:
if_Windows
#include <Include1>
if_Linux
#include <Include2>
有没有可能做这样的事情?你是怎么做到的?
最佳答案
您可以定义一个在为 Windows 和 Linux 编译时设置的宏。
#define MYPROJECT_CONFIG_WINDOWS_PLATFORM
#if defined(MYPROJECT_CONFIG_WINDOWS_PLATFORM)
#include <include1>
#elif defined(MYPROJECT_CONFIG_LINUX_PLATFORM)
#include <include2>
#else
#error link: no suitable library
#endif
然后您所要做的就是在为 Window 编译时定义 MYPROJECT_CONFIG_WINDOWS_PLATFORM
,在为 Linux 编译时定义 MYPROJECT_CONFIG_LINUX_PLATFORM
。
一些 IDE 也有针对它们正在编译的平台的预设宏(如 Windows 的 WIN32
),但您必须检查它们的文档。
关于c++ - 如何在不同的平台有不同的 Header?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20978363/