Is OS detection possible with GLib?

前端 未结 1 1955
星月不相逢
星月不相逢 2021-01-22 03:05

Is it possible to determine on which platform (GNU/Linux, Win32, OS X) my Vala app is running?

1条回答
  •  不思量自难忘°
    2021-01-22 03:19

    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++.

    0 讨论(0)
提交回复
热议问题