【问题标题】:OCaml Compiler on Windows - compiling module error. (i686-w64-mingw32-as)Windows 上的 OCaml 编译器 - 编译模块错误。 (i686-w64-mingw32-as)
【发布时间】:2014-07-24 07:27:28
【问题描述】:

我正在使用 Windows 7 64x,在我的下学期,我将在我的一个讲座中使用 OCaml 作为主要语言,我更像是一个“Windows”人(我有 Windows 版本和基于 cygwin 的版本) .所以我决定去this tutorial

现在问题来了: 我已经按照链接中的说明创建了文件 amodule.mlbmodule.ml。但是,当我尝试在命令行上执行以下行时:

ocamlopt -c amodule.ml

我收到以下错误:

'i686-w64-mingw32-as' is not recognized as an internal or external command, operable program or batch file.
File "amodule.ml", line 1:
Error: Assembler error, input left in file C:\Users\Devate\AppData\Local\Temp\camlasm0d9121.s

bmodule.ml 也出现了几乎相同的错误,并使用最后一行:

ocamlopt -o hello amodule.cmx bmodule.cmx

这样做之后 - 我得到了两个名为 amodule.cmibmodule.cmi 的新文件。 但是,如果我尝试使用 cygwin 版本进行编译,则不会出现任何错误(amodule.cmiamodule.cmx - 与 bmodule 相同)。

但是在 cygwin 中的最后一行我得到了大量的错误:

ocamlopt -o hello amodule.cmx bmodule.cmx

/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/std_exit.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/stdlib.a(pervasives.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(ints.o)' is incompatible with
i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(i386.o)' is incompatible with
i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(fail.o)' is incompatible with
i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(io.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(str.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(minor_gc.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(intern.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(compare.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(floats.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(sys.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(extern.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(memory.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(callback.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(startup.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(alloc.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(custom.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(roots.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(signals_asm.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(backtrace.o)' is incompatible
with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(printexc.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(signals.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(weak.o)' is incompatible with
i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(gc_ctrl.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(major_gc.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(misc.o)' is incompatible with
i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(finalise.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(md5.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(freelist.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(win32.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(globroots.o)' is incompatible
with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(parsing.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(debugger.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `C:\OCaml\lib/libasmrun.a(compact.o)' is incompatible with i386:x86-64 output
/tmp/camlstartup942177.o:fake:(.text+0x5): undefined reference to `camlPervasives__entry'
/tmp/camlstartup942177.o:fake:(.text+0x5): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `camlPervasives__entry'
/tmp/camlstartup942177.o:fake:(.text+0xc): undefined reference to `caml_globals_inited'
/tmp/camlstartup942177.o:fake:(.text+0xc): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `caml_globals_inited'
/tmp/camlstartup942177.o:fake:(.text+0x1c): undefined reference to `caml_globals_inited'
/tmp/camlstartup942177.o:fake:(.text+0x1c): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `caml_globals_inited'
/tmp/camlstartup942177.o:fake:(.text+0x2c): undefined reference to `caml_globals_inited'
/tmp/camlstartup942177.o:fake:(.text+0x2c): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `caml_globals_inited'
/tmp/camlstartup942177.o:fake:(.text+0x35): undefined reference to `camlStd_exit__entry'
/tmp/camlstartup942177.o:fake:(.text+0x35): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `camlStd_exit__entry'
/tmp/camlstartup942177.o:fake:(.text+0x3c): undefined reference to `caml_globals_inited'
/tmp/camlstartup942177.o:fake:(.text+0x3c): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `caml_globals_inited'
/tmp/camlstartup942177.o:fake:(.text+0x5e): undefined reference to `caml_young_limit'
/tmp/camlstartup942177.o:fake:(.text+0x5e): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `caml_young_limit'
/tmp/camlstartup942177.o:fake:(.text+0x9e): undefined reference to `caml_call_gc'
/tmp/camlstartup942177.o:fake:(.text+0x9e): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `caml_call_gc'
/tmp/camlstartup942177.o:fake:(.text+0xee): undefined reference to `caml_young_limit'
/tmp/camlstartup942177.o:fake:(.text+0xee): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `caml_young_limit'
/tmp/camlstartup942177.o:fake:(.text+0x12e): undefined reference to `caml_call_gc'
/tmp/camlstartup942177.o:fake:(.text+0x12e): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `caml_call_gc'
/tmp/camlstartup942177.o:fake:(.text+0x16e): undefined reference to `caml_young_limit'
/tmp/camlstartup942177.o:fake:(.text+0x16e): additional relocation overflows omitted from the output
/tmp/camlstartup942177.o:fake:(.text+0x1a3): undefined reference to `caml_call_gc'
/tmp/camlstartup942177.o:fake:(.text+0x1ee): undefined reference to `caml_young_limit'
/tmp/camlstartup942177.o:fake:(.text+0x22e): undefined reference to `caml_call_gc'
/tmp/camlstartup942177.o:fake:(.text+0x26e): undefined reference to `caml_young_limit'
/tmp/camlstartup942177.o:fake:(.text+0x2a3): undefined reference to `caml_call_gc'
/tmp/camlstartup942177.o:fake:(.text+0x2de): undefined reference to `caml_young_limit'
/tmp/camlstartup942177.o:fake:(.text+0x313): undefined reference to `caml_call_gc'
/tmp/camlstartup942177.o:fake:(.data+0x2b8): undefined reference to `camlPervasives'
/tmp/camlstartup942177.o:fake:(.data+0x2d0): undefined reference to `camlStd_exit'
/tmp/camlstartup942177.o:fake:(.data+0x3d8): undefined reference to `camlPervasives__data_begin'
/tmp/camlstartup942177.o:fake:(.data+0x3e0): undefined reference to `camlPervasives__data_end'
/tmp/camlstartup942177.o:fake:(.data+0x408): undefined reference to `camlStd_exit__data_begin'
/tmp/camlstartup942177.o:fake:(.data+0x410): undefined reference to `camlStd_exit__data_end'
/tmp/camlstartup942177.o:fake:(.data+0x430): undefined reference to `camlPervasives__code_begin'
/tmp/camlstartup942177.o:fake:(.data+0x438): undefined reference to `camlPervasives__code_end'
/tmp/camlstartup942177.o:fake:(.data+0x460): undefined reference to `camlStd_exit__code_begin'
/tmp/camlstartup942177.o:fake:(.data+0x468): undefined reference to `camlStd_exit__code_end'
/tmp/camlstartup942177.o:fake:(.data+0x480): undefined reference to `caml_system__frametable'
/tmp/camlstartup942177.o:fake:(.data+0x488): undefined reference to `camlPervasives__frametable'
/tmp/camlstartup942177.o:fake:(.data+0x4a0): undefined reference to `camlStd_exit__frametable'
bmodule.o:fake:(.text+0xc): undefined reference to `camlPervasives__print_endline_1257'
amodule.o:fake:(.text+0x8): undefined reference to `camlPervasives__print_endline_1257'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.text+0x1b5): undefined reference to `_caml_exn_End_of_file'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.text+0x493): undefined reference to `_caml_exn_Failure'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.text+0x4d3): undefined reference to `_caml_exn_Invalid_argument'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.text+0xa76): undefined reference to `_caml_exn_End_of_file'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.text+0xb18): undefined reference to `_caml_curry2'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x184): undefined reference to `_caml_curry2'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x194): undefined reference to `_caml_curry2'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x1bc): undefined reference to `_caml_curry2'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x2b0): undefined reference to `_caml_curry4'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x2c0): undefined reference to `_caml_curry4'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x2d0): undefined reference to `_caml_curry4'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x2f8): undefined reference to `_caml_curry3'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x320): undefined reference to `_caml_curry2'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x330): undefined reference to `_caml_curry4'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x340): undefined reference to `_caml_curry2'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x374): undefined reference to `_caml_curry3'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x384): undefined reference to `_caml_curry2'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x3dc): undefined reference to `_caml_curry2'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x404): undefined reference to `_caml_curry2'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x414): undefined reference to `_caml_curry2'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x448): undefined reference to `_caml_curry2'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x458): more undefined references to `_caml_curry2' follow
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x524): undefined reference to `_caml_curry3'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x7c4): undefined reference to `_fmod'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x7cc): undefined reference to `_floor'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x7d0): undefined reference to `_ceil'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x7d4): undefined reference to `_tanh'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x7d8): undefined reference to `_tan'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x7dc): undefined reference to `_sqrt'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x7e0): undefined reference to `_sinh'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x7e4): undefined reference to `_sin'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x7ec): undefined reference to `_log10'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x7f0): undefined reference to `_log'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x7f4): undefined reference to `_cosh'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x7f8): undefined reference to `_cos'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x800): undefined reference to `_atan2'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x804): undefined reference to `_atan'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x808): undefined reference to `_asin'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x80c): undefined reference to `_acos'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x814): undefined reference to `_exp'
C:\OCaml\lib/stdlib.a(pervasives.o):fake:(.data+0x818): undefined reference to `_pow'
C:\OCaml\lib/libasmrun.a(ints.o):ints.c:(.text+0x3f9): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(ints.o):ints.c:(.text+0x429): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(ints.o):ints.c:(.text+0x457): undefined reference to `_atoi'
C:\OCaml\lib/libasmrun.a(ints.o):ints.c:(.text+0x560): undefined reference to `_sprintf'
C:\OCaml\lib/libasmrun.a(ints.o):ints.c:(.text+0x57c): undefined reference to `_sprintf'
C:\OCaml\lib/libasmrun.a(ints.o):ints.c:(.text+0x86c): undefined reference to `_sprintf'
C:\OCaml\lib/libasmrun.a(ints.o):ints.c:(.text+0xa29): undefined reference to `___divdi3'
C:\OCaml\lib/libasmrun.a(ints.o):ints.c:(.text+0xaa6): undefined reference to `___moddi3'
C:\OCaml\lib/libasmrun.a(ints.o):ints.c:(.text+0xde3): undefined reference to `_sprintf'
C:\OCaml\lib/libasmrun.a(ints.o):ints.c:(.text+0xe56): undefined reference to `___udivdi3'
C:\OCaml\lib/libasmrun.a(ints.o):ints.c:(.text+0x131a): undefined reference to `_sprintf'
C:\OCaml\lib/libasmrun.a(i386.o):fake:(.text+0x119): undefined reference to `_caml_program'
C:\OCaml\lib/libasmrun.a(i386.o):fake:(.text+0x211): undefined reference to `_caml_apply2'
C:\OCaml\lib/libasmrun.a(i386.o):fake:(.text+0x231): undefined reference to `_caml_apply3'
C:\OCaml\lib/libasmrun.a(fail.o):fail.c:(.text+0x219): undefined reference to `_caml_exn_Failure'
C:\OCaml\lib/libasmrun.a(fail.o):fail.c:(.text+0x230): undefined reference to `_caml_exn_Invalid_argument'
C:\OCaml\lib/libasmrun.a(fail.o):fail.c:(.text+0x23f): undefined reference to `_caml_bucket_Out_of_memory'
C:\OCaml\lib/libasmrun.a(fail.o):fail.c:(.text+0x24e): undefined reference to `_caml_bucket_Stack_overflow'
C:\OCaml\lib/libasmrun.a(fail.o):fail.c:(.text+0x265): undefined reference to `_caml_exn_Sys_error'
C:\OCaml\lib/libasmrun.a(fail.o):fail.c:(.text+0x274): undefined reference to `_caml_exn_End_of_file'
C:\OCaml\lib/libasmrun.a(fail.o):fail.c:(.text+0x283): undefined reference to `_caml_exn_Division_by_zero'
C:\OCaml\lib/libasmrun.a(fail.o):fail.c:(.text+0x292): undefined reference to `_caml_exn_Not_found'
C:\OCaml\lib/libasmrun.a(fail.o):fail.c:(.text+0x2a1): undefined reference to `_caml_exn_Sys_blocked_io'
C:\OCaml\lib/libasmrun.a(fail.o):fail.c:(.text+0x2d7): undefined reference to `_caml_exn_Invalid_argument'
C:\OCaml\lib/libasmrun.a(fail.o):fail.c:(.text+0x326): undefined reference to `_caml_exn_Match_failure'
C:\OCaml\lib/libasmrun.a(fail.o):fail.c:(.text+0x32d): undefined reference to `_caml_exn_Assert_failure'
C:\OCaml\lib/libasmrun.a(fail.o):fail.c:(.text+0x334): undefined reference to `_caml_exn_Undefined_recursive_module'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0xbc): undefined reference to `_write'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x149): undefined reference to `__lseeki64'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x1d9): undefined reference to `_close'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x249): undefined reference to `__lseeki64'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x270): undefined reference to `__lseeki64'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x351): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x464): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x47b): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x4b4): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x554): undefined reference to `__lseeki64'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x5c8): undefined reference to `_read'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x5f8): undefined reference to `_read'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x71d): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x73a): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x786): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x882): undefined reference to `__lseeki64'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x90c): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0xafd): undefined reference to `_close'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x1284): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x12aa): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(io.o):io.c:(.text+0x1308): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(str.o):str.c:(.text+0x41d): undefined reference to `_memcmp'
C:\OCaml\lib/libasmrun.a(str.o):str.c:(.text+0x52e): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(str.o):str.c:(.text+0x560): undefined reference to `_memset'
C:\OCaml\lib/libasmrun.a(str.o):str.c:(.text+0x589): undefined reference to `_setlocale'
C:\OCaml\lib/libasmrun.a(str.o):str.c:(.text+0x5a2): undefined reference to `__imp__isprint'
C:\OCaml\lib/libasmrun.a(minor_gc.o):minor_gc.c:(.text+0x56d): undefined reference to `_free'
C:\OCaml\lib/libasmrun.a(minor_gc.o):minor_gc.c:(.text+0x6b7): undefined reference to `_realloc'
C:\OCaml\lib/libasmrun.a(intern.o):intern.c:(.text+0x13): undefined reference to `_free'
C:\OCaml\lib/libasmrun.a(intern.o):intern.c:(.text+0x241): undefined reference to `_sprintf'
C:\OCaml\lib/libasmrun.a(intern.o):intern.c:(.text+0x2ce): undefined reference to `_malloc'
C:\OCaml\lib/libasmrun.a(intern.o):intern.c:(.text+0x2f9): undefined reference to `_realloc'
C:\OCaml\lib/libasmrun.a(intern.o):intern.c:(.text+0x5c3): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(intern.o):intern.c:(.text+0x7b7): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(intern.o):intern.c:(.text+0x89d): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(intern.o):intern.c:(.text+0x9f2): undefined reference to `_memcmp'
C:\OCaml\lib/libasmrun.a(intern.o):intern.c:(.text+0x1227): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(intern.o):intern.c:(.text+0x13d7): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(compare.o):compare.c:(.text+0x13): undefined reference to `_free'
C:\OCaml\lib/libasmrun.a(compare.o):compare.c:(.text+0x2a5): undefined reference to `_memcmp'
C:\OCaml\lib/libasmrun.a(compare.o):compare.c:(.text+0x430): undefined reference to `_strcmp'
C:\OCaml\lib/libasmrun.a(compare.o):compare.c:(.text+0x519): undefined reference to `_malloc'
C:\OCaml\lib/libasmrun.a(compare.o):compare.c:(.text+0x548): undefined reference to `_realloc'
C:\OCaml\lib/libasmrun.a(floats.o):floats.c:(.text+0x9f): undefined reference to `_atoi'
C:\OCaml\lib/libasmrun.a(floats.o):floats.c:(.text+0xe1): undefined reference to `_atoi'
C:\OCaml\lib/libasmrun.a(floats.o):floats.c:(.text+0x121): undefined reference to `_sprintf'
C:\OCaml\lib/libasmrun.a(floats.o):floats.c:(.text+0x1a6): undefined reference to `_sprintf'
C:\OCaml\lib/libasmrun.a(floats.o):floats.c:(.text+0x267): undefined reference to `___strtod'
C:\OCaml\lib/libasmrun.a(floats.o):floats.c:(.text+0x314): undefined reference to `___strtod'
C:\OCaml\lib/libasmrun.a(weak.o):weak.c:(.text+0x41d): undefined reference to `_memmove'
C:\OCaml\lib/libasmrun.a(major_gc.o):major_gc.c:(.text+0xb8): undefined reference to `_realloc'
C:\OCaml\lib/libasmrun.a(major_gc.o):major_gc.c:(.text+0xb39): undefined reference to `_malloc'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x16f): undefined reference to `_fwrite'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x1bb): undefined reference to `_realloc'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x204): undefined reference to `__imp___findfirst'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x287): undefined reference to `_malloc'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x2a2): undefined reference to `_memcpy'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x2b9): undefined reference to `_strcpy'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x2d1): undefined reference to `__imp___findnext'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x2e3): undefined reference to `__imp___findclose'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x5ae): undefined reference to `_strcpy'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x616): undefined reference to `_strcpy'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x68c): undefined reference to `_flexdll_dlopen'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x6a3): undefined reference to `_flexdll_dump_exports'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x6a8): undefined reference to `__imp___iob'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x6b3): undefined reference to `_fflush'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x6c9): undefined reference to `_flexdll_dlclose'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x73b): undefined reference to `_signal'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x75b): undefined reference to `__imp__SetConsoleCtrlHandler@8'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x7a9): undefined reference to `_malloc'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x863): undefined reference to `_strcpy'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x8bd): undefined reference to `__imp___findfirst'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x93d): undefined reference to `_strcpy'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x961): undefined reference to `__imp___findnext'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x96e): undefined reference to `__imp___findclose'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x98e): undefined reference to `__imp__SetUnhandledExceptionFilter@4'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x9aa): undefined reference to `__imp__GetSystemTimeAsFileTime@4'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x9ba): undefined reference to `__imp__QueryPerformanceCounter@4'
C:\OCaml\lib/libasmrun.a(win32.o):win32.c:(.text+0x9d0): undefined reference to `__imp__GetCurrentProcessId@0'
C:\OCaml\lib/libasmrun.a(parsing.o):parsing.c:(.text+0x4a2): undefined reference to `_fprintf'
C:\OCaml\lib/libasmrun.a(parsing.o):parsing.c:(.text+0x570): undefined reference to `__imp___iob'
C:\OCaml\lib/libasmrun.a(parsing.o):parsing.c:(.text+0x57b): undefined reference to `_fprintf'
C:\OCaml\lib/libasmrun.a(compact.o):compact.c:(.text+0x50d): undefined reference to `_memmove'
/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../lib/libcygwin.a(libcmain.o): In function `main':
/usr/src/debug/cygwin-1.7.31-2/winsup/cygwin/lib/libcmain.c:39: undefined reference to `WinMain'
collect2: error: ld returned 1 exit status
File "caml_startup", line 1:
Error: Error during linking

我不知道该怎么办。

【问题讨论】:

  • 你可以在*.com/help/behavior了解这个网站(不要说“这是我的第一个问题”或“提前谢谢你”),如果你要教 OCaml,你应该从caml.inria.fr/ocaml/name.en.html学习如何写名字
  • 如果你想做 OCaml 而不是按照camlspotter 的建议使用 Windows,并且只有一台 Windows 机器,那么使用 Virtual Box 或 VMware 等虚拟机来运行 Debian 等 Linux,然后用它来处理 OCaml。这就是我在 Windows 上做 OCaml 的方式。

标签: cygwin mingw ocaml


【解决方案1】:

如果您想学习 OCaml,请不要使用 Windows。不管你是不是 Windows 人。期间。

话虽如此,i686-w64-mingw32-as 是一个汇编程序,但它丢失了。您必须仔细阅读 OCaml 的说明 README.win32 并安装所需的软件。

对于 Cygwin 版本的麻烦,我猜您正在尝试将您的 Cygwin 目标文件与 MinGW OCaml 安装链接。这根本行不通。也许你的 Cygwin OCaml 完全被 MinGW OCaml 的 env var 弄糊涂了。

我重复一遍。 Windows 中的 OCaml 对新手来说有很多坑。避免它。

【讨论】:

  • 附带说明:如果您想学习一种非常类似于 OCaml 的语言(实际上 OCaml 是它的一种祖先),但在 Windows 和 Linux 中具有出色的支持,请查看 F#。