Windows에서 Ruby Extension Library (C)를 사용하여 Ruby 응용 프로그램을 실행하는 방법은 무엇입니까?
-
03-07-2019 - |
문제
도움을 주셔서 감사합니다. C 라이브러리에 연장을 쓰고 싶습니다. 라이브러리 libzmq (c ++로 작성)를 사용하는 파일 zmq.cpp를 만들었습니다.
나는 Ruby extconf.rb를 사용하여 Makefile을 만들고 NMake를 실행했습니다. 모두 잘되었습니다. nmake 생성 파일
librbzmq-i386-mswin32.def
librbzmq-i386-mswin32.lib
librbzmq-i386-mswin32.exp
librbzmq.so librbzmq.so.manifest
이 모든 것은 Windows XP에서 이루어졌습니다.
그런 다음 첫 번째 줄에는 다음과 같은 테스트 프로그램이 있습니다.
require 'librbzmq'
테스트 프로그램을 사용하여 실행하려고 할 때
ruby -I"C:\Documents and Settings\Kustarova\wcopy\trunk\librbzmq\librbzmq-i386-mswin32.lib" -I"C:\Documents and Settings\Kustarova\wcopy\trunk\windows\Debug\libzmq.lib" ./rb_remote_lat.rb
나는 얻다
rb-remote_lat.rb:1:in `require':no such file to load -- librbzmq (LoadError) from ./rb_remote_lat.rb:1:in `<main>'
파일 위치가 정확하고 확인했습니다.
그것을 실행하는 방법을 알고 있습니까?
참고 : 우분투 에서이 모든 일을했는데 잘 작동했습니다. MakeFile을 만들었고 여기와 비슷한 명령을 사용하여 테스트 응용 프로그램을 실행할 수있었습니다 (경로 만 다름).
감사
해결책
내 이전 답변 수정 - "-i"를 사용하여 공급하는 경로가 잘못되었습니다. librbzmq. so를 찾을 수있는 디렉토리를 가리켜 야합니다. 또는 다음을 사용하여 라이브러리를 설치할 수 있습니다.
nmake install
또는 Rubylib를 사용하여 검색 경로를 설정하십시오.
set RUBYLIB="C:\Documents and Settings\Kustarova\wcopy\trunk\librbzmq"
문안 인사
승인하다
제휴하지 않습니다 StackOverflow