我正在使用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