Я пытаюсь настроить окно для компиляции моего проекта в Windows.Это windows 7 32bit, с mingw, gcc и другими библиотеками, установленными через приложение установки cygwin.flexdll и OCaml были установлены через скомпилированные пакеты на соответствующих веб-сайтах.
Проблема заключается в ошибке Access Denied
, возникающей из команды flexlink
.Я повторил предыдущие две команды сам, с теми же результатами, что и ocamlbuild, и все же сообщение об ошибке, о котором он сообщает, может быть легко выполнено мной.
Все рассматриваемые приложения имеют схожие разрешения, принадлежащие разработчику.У кого-нибудь есть понимание?Спасибо.
РЕДАКТИРОВАТЬ Некоторые дополнительные сведения.Компиляция байт-кода работает отлично здесь.Просматривать исходный код flexdll и как он запускает эту команду.Это делается двумя способами, как через Sys.command.Когда установлен флаг bash, команда записывается в файл и запускается как bash somefile
.Это отлично работает.Непосредственный вызов команды завершается с Access Denied
.Я изменил историю ниже, чтобы отразить это.
Developer@warhol ~/sample_ocaml
$ ocamlbuild -clean
rm -Rf _build
Developer@warhol ~/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
Developer@warhol ~/sample_ocaml
$ as -o "C:\cygwin\tmp\camlstartupe069c2.o" "C:\cygwin\tmp\camlstartup48b824.s"
Developer@warhol ~/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
Developer@warhol ~/sample_ocaml
$ gcc -mno-cygwin -print-libgcc-file-name
/usr/lib/gcc/i686-pc-mingw32/3.4.4/libgcc.a
Developer@warhol ~/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