Is it possible to determine on which platform (GNU/Linux, Win32, OS X) my Vala app is running?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
As Vala is a compiled language (as opposed to intermediate or interpreted) you can determine the platform using your favorite build tool and use conditional compilation.
Something like:
#if WINDOWS
message ("Running on Windows");
#elif OSX
message ("Running on OS X");
#elif LINUX
message ("Running on GNU/Linux");
#elif POSIX
message ("Running on other POSIX system");
#else
message ("Running on unknown OS");
#endif
The build tool would have to pass -D LINUX
, etc to the compiler.
I would be careful and only do something like this as a last resort, because it can backfire. Usually it's better to use cross platform libraries that already handle the differences for you.
BTW: See also how this is done in C++.