문제

I am trying to get my machine's number of cpus in vala.
According to http://valadoc.org/#!wiki=glib-2.0/index

public uint get_num_processors ()

should return this to me.

But when I try to compile the following code:

public class Main {
    static int main(string[] args) {
    uint num_cpus = GLib.get_num_processors();
        return 0;   
    }
}

with:

valac --target-glib 2.38 --pkg gtk+-3.0 --pkg gee-1.0 $(SRC)

I see the following error:

Application.vala:28.4-28.26: error: The name 'get_num_processors' does not exist in the context of 'GLib'

I've tested some other methods from GLib. They all work flawless except this one. Has anyone an idea what I'm doing wrong?

도움이 되었습니까?

해결책

The function was only added to the VAPI recently, I believe you'll need version 0.22.0 of Vala (or one of the unstable 0.21.x releases).

To get around this you can create a local binding in your code:

[CCode (cname = "g_get_num_processors")]
private extern static uint get_num_processors ();

다른 팁

This was introduced in GLib 2.36 (see GLib Threads). Do you have that version installed?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top