Ruby require失败,空间不足[loadquery failed]

时间:2014-01-31 21:04:44

标签: c++ ruby swig

我设法在64位模式下在aix上编译ruby 2.0.0,现在我试图让我的swig包装器绕c ++类工作。

编译ruby后,make test恢复干净,确实红宝石似乎运行正常。 下一步是编译扩展名。

指向我的新ruby安装我创建了一个extconf.rb,其中包含以下内容:

require 'mkmf'
create_makefile('wv')

wv是模块的名称。 然后我跑了

make
make install 
运行干净的

但是当我跑步时

ruby -e "require 'wv'" 

我得到以下追溯。

/blah/blah/ruby/aix/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require': load failed - /blah/blah/ruby/aix/lib/ruby/site_ruby/2.0.0/powerpc-aix6.1.0.0/wv.so. Not enough space[loadquery failed] (LoadError)
顺便说一下,当我使用相同的swig生成的cxx文件并在linux上执行相同的程序时,一切正常。

任何想法是要开始弄清楚什么是坏的?

1 个答案:

答案 0 :(得分:0)

如果由于“没有这样的文件”以外的任何原因而要求失败,则需要深入挖掘。 就我而言,问题根本与空间无关。在我的情况下,问题不是空间,而是事实,虽然可以找到共享对象文件,但它没有正确加载。 扩展程序试图链接到不兼容的库。 扩展是使用g ++编译的,而库是使用xlC编译的。两个库的错位名称不兼容。使用g ++重新编译库解决了问题