Я построил (очень простую) библиотеку, которую я могу назвать просто отлично от другой программы на C++.Ruby FFI on MinGW
Но это не сработает, когда я попытаюсь связать его с Ruby FFI. Он дает FFI::NotFoundError
, говорит, что он не может найти функцию, экспортированную в DLL.
Куда могут пойти вещи? Нужно ли мне специальное лечение при компиляции моей DLL с помощью g ++? Я просто строю его с g++ -shared -o lib.dll libsrc.cpp
.
Я довольно новичок в Ruby, но пример кода для FFI очень прост, и у меня также есть код, который выполняет некоторые довольно сложные вещи из библиотеки user32 через FFI. Поэтому я знаю, что это работает.
Еще одна вещь, которую я могу придумать, заключается в компиляции моего кода с помощью visual studio в надежде создать более «совместимую» DLL, но я хочу придерживаться GCC.
Я не могу заставить его работать. Будет просто сделать регулярное расширение Ruby. Благодарю. –