2013-10-02 65 views
2

我想讓我的機器的數量在vala的cpu。
http://valadoc.org/#!wiki=glib-2.0/index
Vala:cpus的編號

public uint get_num_processors()

應該回到這個給我。

但是,當我嘗試編譯下面的代碼:

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

有:

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

我看到下列錯誤:

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

我測試過的其他一些來自GLib的方法。除此之外,它們都是完美無瑕的。 有沒有人知道我做錯了什麼?

回答

2

最近VAPI函數只有added,我相信你需要Vala 0.22.0版本(或0.21.x版本的不穩定版本)。

爲了解決這個問題,你可以在你的代碼中創建一個本地綁定:

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

這是在GLib 2.36中引入的(參見GLib Threads)。你有安裝該版本嗎?

+0

錯誤來自華劣克來了,不C編譯器,那麼油腔滑調的版本並不重要。 – nemequ

+0

pacman -Q | grep glib2 > glib2 2.36.4-1 > lib32-glib2 2.36.4-1 valac --version > Vala 0.20.1 – user2838980