Ruby require терпит неудачу с Недостаточно места [нагрузочный запрос не выполнен]

0

Мне удалось скомпилировать ruby 2.0.0 в режиме aix в 64-битном режиме, и теперь я пытаюсь заставить свою оболочку swig работать над классом c++.

После компиляции ruby, make test будет возвращена чистой, и действительно рубин, кажется, работает нормально. Следующим шагом было скомпилировать расширение.

указав на мою новую рубиновую установку, я создал 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)

BTW, я, когда я использовал тот же самый сгенерированный cxx файл, и выполнил ту же процедуру в Linux, все работает отлично.

Любая идея была начать выяснять, что сломалось?

  • 0
    Я бы попробовал Strace
  • 0
    Глядя на мужчину в поисках следов, кажется, что я бы подключил его к запущенному процессу? Любая идея, как я мог бы проследить только вышеупомянутый лайнер?
Показать ещё 2 комментария
Теги:
swig

1 ответ

0
Лучший ответ

Когда требуется отказ по какой-либо причине, отличной от "нет такого файла", вам нужно копать глубже. В моем случае проблема не была связана с пространством вообще. В моем случае проблема была не в пространстве, а в том, что, хотя файл общих объектов мог быть расположен, он не загружался должным образом. Расширение попыталось связать с несовместимой библиотекой. Расширение было скомпилировано с использованием g++, а библиотека была скомпилирована с использованием xlC. Ошибочные имена двух библиотек были несовместимы. перекомпиляция библиотеки с использованием g++ решена проблема

Ещё вопросы

Сообщество Overcoder
Наверх
Меню