我正在开发一种获取真正的全局热键的方法(例如,即使应用程序处于模糊状态,也会在某些输入上发出信号)
这将需要不同的win、osx和x11的代码。在qt creator中,我应该如何让它适合跨平台开发。
编辑:我不想知道如何使用x11、windows等实际代码。我只想知道如何为每个平台分别定义。
发布于 2015-09-21 23:51:53
我不想知道如何使用x11、windows等编写实际的代码,我只想知道如何为每个平台分别进行定义。
基于预定义的编译器符号来使用ifdefs很方便,例如:
http://sourceforge.net/p/predef/wiki/OperatingSystems/
#ifdef __linux__ // linux related, GCC has that macros
// your code and/or definitions
#endif
#if defined(__linux__) || defined(macintosh)
// your code and/or definitions
#endif
你也可以在那里使用OR逻辑,因为Mac上的许多东西都类似于Linux,反之亦然。注意编译器,如果它有这个符号的话。我会对适用编译器的所有平台符号使用OR逻辑。
发布于 2015-09-22 06:20:20
如果你愿意使用Qt,它的操作系统和编译器定义很容易为你所用:
#include <QtGlobal>
#if defined(Q_OS_LINUX)
// linux-specifc
#elif defined(Q_OS_WIN32) && defined(Q_CC_MSVC)
// win32 and msvc
#endif
Documentation。
https://stackoverflow.com/questions/32698773
复制相似问题