我正在使用Ruby,並意識到如果能夠使用某些內置的gcc函數(以及x86架構內置插件),這將是非常有益的。看起來不得不寫一個擴展名來使用它們是不切實際的,所以我想知道是否有一種方法可以調用內置函數。例如,如果我想叫int __builtin_popcount(unsigned int)
,在Ruby中的數字,是有辦法,我可以以某種方式做如何在Ruby中調用內置的編譯器函數?
a = rand(1..10000)
__builtin_popcount(a)
我知道,我顯然不能做一些基本的,但有一種方式,我可以在Ruby中包含gcc和x86體系結構插件?
您可以用C或C++代碼與[FFI](https://github.com/ffi/ffi)鏈接。如果沒有擴展,沒有辦法在內部執行此操作。請記住,Ruby不一定與'gcc'有關。例如,JRuby沒有任何關係,再加上「clang」作爲許多現代系統的後端並不罕見。 – tadman