2011-03-06 4 views
1

너무 구체적이지 않은 OCaml에서 바이너리를 생성하는 방법을 이해하는 동안 (OCaml 빌드 도구가 설치되어있는 것과 같이) 미쳐 버렸습니다. 아주 잘독립형 OCaml 프로그램 빌드하기

OCAMLPACKS[] = str unix batteries 

작품, 내 컴퓨터에도 연결 libs와 작업하는 동안 내가 OMake 모든 것을 사용하고

충분히 멋진 것 같다,하지만 난 실행 파일을 배포하려고하면 그것은 나에게 다음과 같은 오류를 제공합니다 :

Fatal error: exception Sys_error("/usr/godi/share/camomile/database/general_category.mar: No such file or directory") 

예 저는 GODI를 사용하고 있지만이 오류에 대한 명백한 이유가 보이지 않습니다. 누구든지 나를 밝힐 수 있습니까? 또한 독립 실행 형 응용 프로그램을 만드는 것과 관련된 트릭이 있다면 (이미 x64 버전에서 everylib을 컴파일 한 GODI와 논쟁을하고 있습니다. 이제는 x86 실행 파일을 생성 할 수 없습니다)

감사합니다. advance

답변

3

camomile 라이브러리에는 런타임 구성이 필요합니다. 설정 방법에 대한 정보는 README.txt을 참조하십시오. 특히 올바르게 작동하려면 런타임 파일 (누락 된 .mar)이 필요합니다.

+0

나는 지정된 디렉토리 안에있는 모든'mar' 파일을 실행 파일과 함께 제공해야합니까? 하지만 내 '로컬'GODI 폴더를 보는 대신 다른 폴더를 강제로로드 할 수있는 방법이 있습니까? – Jack

+0

[CamomileLibraryDyn] (http://camomile.sourceforge.net/dochtml/CamomileLibraryDyn.html) 모듈을 사용해보고 환경에'CAMOMILE_DATADIR'를 설정할 수 있습니다. 건전지를 통해 카모 밀을 사용하는 경우 건전지가 어떻게 카모 밀을 초기화하는지 확인해야합니다. – tonio

2

OMake는 사용하지 않으며 배터리도 GODI도 Camomile도 사용하지 않습니다. 그러나 내가보기에 문제는 Camomile을 내부적으로 사용해야하는 배터리와 연결된다는 사실에서 비롯된 것으로 보이며 Camomile은 일부 서비스를 제공하기 위해 파일 시스템에 저장된 데이터에 의존합니다. 해당 데이터가 최종 호스트에 없으면로드에 실패합니다.

순전히 정적 인 excutables를 운반하는 것은 OCaml로는 상당히 간단합니다. 그러나이를 위해서는 사용하는 라이브러리를 고려해야합니다 (예 : camomille를 사용하는 경우 지원 파일을 함께 제공해야 함).