2008-10-03 3 views
5

Windows 시스템에 대한 몇 가지 보석을 업데이트하려고 내가 지속적으로 미리 컴파일 된 바이너리가없는 보석이 오류의 출력을 얻을 : --with-수신 거부 디렉토리 --without- :Windows에서 Ruby Gems를 설치하려면 MinGW를 사용하여 컴파일하고 컴파일하는 방법은 무엇입니까?

제공 구성 옵션을 opt-dir --with-opt-include --without-opt-include = $ {opt-dir}/include --with-opt-lib --without-opt-lib = $ {opt-dir }/lib --with-make-prog --srcdir =. --curdir --ruby = C :/서버/루비/빈/루비

이는 보석의 설치 중에 extconf.rb 루비 파일에 제공되는 구성 옵션입니다.

MinGW를 설치 했으므로이 보석을 설치, 작성 및 컴파일해야합니다. 그러나, 나는 extconf.rb가 호출 될 때 MinGW include 디렉토리를 가리키는 적절한 옵션을 포함하도록 RubyGem의 설정을 변경하는 방법을 모른다.

답변

3

DevKit이 당신이 원하는 것일 수 있습니다.

+0

감사합니다. 저는 보석이 Ruby 언어 자체에 사용 된 것과 동일한 컴파일러로 컴파일되어야한다는 것을 알기 전까지는 몰랐습니다. 그럴 경우, 필자는 다른 방향으로 갔다 - VC6을 설치했고 헤더 파일에 하나의 마이너 코드를 추가하면 모든 것이 잘 동작한다. 감사. – Yardboy

1

네이티브 Windows Ruby와 호환되는지는 모르겠지만 Cygwin 버전을 사용하고 Cygwin이 설치된 경우 (컴파일러 등) 문제가 없어야합니다. 컴파일 된 것을 필요로하는 많은 보석을 사용하십시오.

-1

일반적으로 내 경험상, Unix 시스템 용으로 설계된 코드는 MinGW에서 작업하기가 매우 어려울 수 있습니다. 빠른 포트의 경우 CygWin을 사용하십시오. 또는 네이티브 Windows 셸 및 OS API 사용을 포함하여 Windows 호스트에 소프트웨어의 전체 포트를 만드십시오. 시간이 많이 소요되는 비싼 비용이지만 Windows를 장기간 지원할 계획이라면 지불해야합니다.

이 특정 소프트웨어 패키지에 익숙하지 않은이 코드는 다른 비열한 코드를 Windows로 포팅하려는 일반적인 관찰 일뿐입니다.

0

나는 똑같은 문제가있었습니다.

미리 컴파일 된 바이너리가없는 보석 (예 : parsetree)을 Windows에서 실행하는 유일한 방법은 Mingw를 사용하여 Ruby 소스를 다시 컴파일하고 Visual C++ 설치에서 여러 라이브러리와 응용 프로그램을 복사하는 것이 었습니다 벌써 했어. 내가 복사 한 것은 zlib 라이브러리와 iconv 라이브러리 및 응용 프로그램을 포함했습니다.

참고 :이 설정은 테스트 구성으로 사용하고 있습니다. 나는 프로덕션을 위해 그런 설정을 사용하지 않을 것입니다. (한 배포판에서 다른 배포본에 이르기까지 라이브러리가 어떻게 될지 누가 알 수 있습니다.)

1

Yardboy,

당신이, 당신은 단지 거기에 옵션 출력을 넣어 업데이트하려고하는 보석 언급하지 않았다 너무 나쁜.

또한 일부 보석에는 컴파일러 (MinGW)뿐만 아니라 개발 헤더와 라이브러리가 필요합니다.

또한 MinGW는 Ruby 빌드가 오랫동안 작동하기 때문에 MinGW로 생성됩니다.

쉽게 처리 할 수있는 작업이 있지만 컴파일러, 헤더 및 라이브러리 요구 사항은 모두 플랫폼에서만 필요합니다.

당신은 my blog

건배에 대한 추가 정보 및 리소스를 찾을 수 있습니다.

관련 문제