Зависимости расширения Ruby C

проблема

У меня есть интуитивное понимание разницы между динамическими и статическими библиотеками. Тем не менее, я пытаюсь написать расширение C, которое использует стороннюю библиотеку. Я скомпилировал эту библиотеку как статически, так и динамически, и я ссылаюсь на статическую библиотеку в моем файле extconf.rb. Для ясности...

A = сторонняя динамическая библиотека (теоретически не используется)
B = сторонняя статическая библиотека (ссылка на extconf.rb)
C = Ruby C расширение

Вот в чем дело: когда мне требуется C в моем коде ruby, я получаю ошибку. Эта ошибка не выдается, если A находится в текущем рабочем каталоге. Wierd. Наличие B в текущем рабочем каталоге, похоже, сбивает с толку ruby ​​и не может найти A.

В идеале я хочу, чтобы B вообще не присутствовал в системе. Я хотел бы, чтобы все это было спрятано в C. Это то, что я думал, что статическая библиотека сделала. Возможно ли это, и если да, то как это сделать?

Contexet

Windows7, Ruby2.0, DevKit, MinGW. Сторонней библиотекой является CGAL, которая, в свою очередь, опирается на boost, mpfr и gmp. Расширение предназначено для использования с ruby ​​API SketchUp. Рубиновые расширения SketchUp устанавливаются через интерфейс SketchUp, который просто копирует соответствующие файлы в каталог по своему выбору и загружает их. Мой extconf выглядит следующим образом:

#extconf.rb
require 'mkmf'

dir_config("CGAL", "C:/CGAL-4.2/include", "C:/CGAL-4.2/bin")
have_library("CGAL")
dir_config("boost", "C:/boost/boost_1_54_0", "C:/boost/boost_1_54_0/stage/lib")
have_library("boost_thread-mgw47-mt-1_54")
have_library("boost_system-mgw47-mt-1_54")
dir_config("gmp", "C:/CGAL-4.2/auxiliary/gmp")


create_makefile( 'HW' )

require () не удалось

Когда libCGAL.dll не найден, я получаю следующий вывод. Помещение в текущий рабочий каталог исправляет это.

test.rb:2:in `require_relative': 126: No se puede encontrar el módulo especificado.   - 
C:/Users/Noel/code/tru-offset/HW.so (LoadError)from test.rb:2:in `<main>'

0 ответов

Другие вопросы по тегам