윈도우에서 프로젝트를 컴파일하기 위해 상자를 설정하려고합니다. 이것은 mingw, gcc 및 기타 라이브러리가 cygwin 설치 응용 프로그램을 통해 설치된 Windows 7 32 비트입니다. flexdll과 OCaml은 각각의 웹 사이트에 컴파일 된 패키지를 통해 설치되었습니다.w/ocamlbuild w/ocamlbuild에서 OCaml 프로그램 컴파일하기
flexlink
명령에서 발생하는 Access Denied
오류입니다. ocamlbuild와 동일한 결과를 가지고 이전의 두 명령을 직접 반복했지만 아직보고 된 오류 메시지는 저에게 쉽게 실행될 수 있습니다.
문제의 모든 응용 프로그램은 Developer에서 소유 한 유사한 권한을가집니다. 누구나 통찰력이 있습니까? 감사.
편집 몇 가지 추가 세부 정보. 여기서 바이트 코드 컴파일이 잘 작동합니다. flexdll 소스 코드와 그 명령을 실행하는 방법. 그것은 두 가지 방법으로 Sys.command를 통해 이루어집니다. bash 플래그가 설정되면 명령은 파일에 쓰여지고 bash somefile
과 같이 실행됩니다. 이것은 잘 작동합니다. 명령을 직접 호출하면 Access Denied
으로 실패합니다. 나는 이것을 반영하기 위해 아래의 이야기를 수정했다.
[email protected] ~/sample_ocaml
$ ocamlbuild -clean
rm -Rf _build
[email protected] ~/sample_ocaml
$ ocamlbuild -classic-display -cflags -verbose -lflags -verbose test.native
mkdir _build
ocamldep -modules test.ml > test.ml.depends
ocamlc -c -verbose -o test.cmo test.ml
ocamlopt -c -verbose -o test.cmx test.ml
+ as -o "test.o" "C:\cygwin\tmp\camlasm07d3fe.s"
ocamlopt -verbose test.cmx -o test.native
+ as -o "C:\cygwin\tmp\camlstartupe069c2.o" "C:\cygwin\tmp\camlstartup48b824.s"
+ flexlink -chain mingw -exe -o "test.native" "-LC:\ocamlmgw\lib" "C:\cygwin\tmp\camlstartupe069c2.o" "C:\ocamlmgw\lib
\std_exit.o" "test.o" "C:\ocamlmgw\lib\stdlib.a" "C:\ocamlmgw\lib\libasmrun.a" -lws2_32
Access is denied.
** Fatal error: Cannot run gcc -mno-cygwin -print-libgcc-file-name
File "caml_startup", line 1, characters 0-1:
Error: Error during linking
Exit code 2 while executing this command:
ocamlopt -verbose test.cmx -o test.native
[email protected] ~/sample_ocaml
$ as -o "C:\cygwin\tmp\camlstartupe069c2.o" "C:\cygwin\tmp\camlstartup48b824.s"
[email protected] ~/sample_ocaml
$ flexlink -chain mingw -exe -o "test.native" "-LC:\ocamlmgw\lib" "C:\cygwin\tmp\camlstartupe069c2.o" "C:\ocamlmgw\lib\
std_exit.o" "test.o" "C:\ocamlmgw\lib\stdlib.a" "C:\ocamlmgw\lib\libasmrun.a" -lws2_32
Access is denied.
** Fatal error: Cannot run gcc -mno-cygwin -print-libgcc-file-name
[email protected] ~/sample_ocaml
$ gcc -mno-cygwin -print-libgcc-file-name
/usr/lib/gcc/i686-pc-mingw32/3.4.4/libgcc.a
[email protected] ~/sample_ocaml
$ ocaml
Objective Caml version 3.11.0
# Sys.command "bash /tmp/long_file.sh";;
/usr/lib/gcc/i686-pc-mingw32/3.4.4/libgcc.a
- : int = 0
# Sys.command "gcc -mno-cygwin -print-libgcc-file-name";;
Access is denied.
- : int = 1
FLEXLINK의 명령 실행 코드가 버그가 나는 보았다 일관성이 마지막이었다 : 나는 어쩌면이 관련되어, 다시 WINXP에 실제 실행에 Cygwin에서 심볼릭 링크를 교체 기억
누군가 수정해야한다 :) – ygrek