如何在Windows上构建64位OCaml 3.10.0

时间:2018-10-22 11:36:06

标签: cygwin ocaml

我有一个使用OCaml 3.10.0(ocaml-3.10.0-win-mgw.exe)编译的可执行文件,由于它是32位的,因此会遇到一些容量问题。我想将其编译为64位可执行文件,并尝试使用OCaml的最新版本(4.0.7)进行编译,但是由于使用的库是使用3.10.0构建的,因此遇到了很多错误。我不知道如何在4.0.7中重建我的库,我也不想。

我想知道的是如何以64位编译OCaml 3.10.0,以便可以编译程序以生成64位可执行文件。我使用cygwin32并遵循安装步骤:

./configure
make world
make opt
make opt.opt
make install

但是,这仍然会安装32位版本。我使用cygwin64,但在编译ocamlrun.exe时仍然失败并产生以下错误

gcc -DCAML_NAME_SPACE -O -fno-defer-pop -Wall -U_WIN32 -D_FILE_OFFSET_BITS=64 -D_REENTRANT   -c -o prims.o prims.c
gcc -fno-defer-pop -Wall -U_WIN32 -D_FILE_OFFSET_BITS=64 -D_REENTRANT  -o ocamlrun.exe \
      prims.o libcamlrun.a -lm   -lpthread
libcamlrun.a(io.o):io.c:(.text+0x26d): undefined reference to `setmode'
libcamlrun.a(io.o):io.c:(.text+0x26d): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `setmode'
libcamlrun.a(io.o):io.c:(.text+0x295): undefined reference to `setmode'
libcamlrun.a(io.o):io.c:(.text+0x295): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `setmode'
libcamlrun.a(io.o):io.c:(.text+0xa77): undefined reference to `setmode'
libcamlrun.a(io.o):io.c:(.text+0xa77): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `setmode'
collect2: error: ld returned 1 exit status

0 个答案:

没有答案