Windows에서 Ruby Extension Library (C)를 사용하여 Ruby 응용 프로그램을 실행하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/819572

문제

도움을 주셔서 감사합니다. 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"

문안 인사

승인하다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top