![AIX 6.1 中的 Ocaml 编译错误](https://linux22.com/image/16946/AIX%206.1%20%E4%B8%AD%E7%9A%84%20Ocaml%20%E7%BC%96%E8%AF%91%E9%94%99%E8%AF%AF.png)
当我尝试在运行 AIX 6.1 的服务器上编译 Ocaml 时,遇到以下错误:
"../Makefile.shared", line 39: make: 1254-055 Dependency line needs colon or double colon operator.
"../Makefile.shared", line 40: make: 1254-055 Dependency line needs colon or double colon operator.
"../Makefile.shared", line 41: make: 1254-055 Dependency line needs colon or double colon operator.
make: 1254-058 Fatal errors encountered -- cannot continue.
make: 1254-004 The error code from the last command is 2.
当我执行make world
.这是最终的输出./configure
:
Directories where Objective Caml will be installed:
binaries.................. /usr/local/bin
standard library.......... /usr/local/lib/ocaml
manual pages.............. /usr/local/man (with extension .1)
Configuration for the bytecode compiler:
C compiler used........... gcc
options for compiling..... -fno-defer-pop -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT
options for linking....... -lm -lcurses -lpthread
shared libraries not supported
Configuration for the native-code compiler:
(not supported on this platform)
Source-level replay debugger: supported
Additional libraries supported:
unix str num dynlink bigarray systhreads threads graph dbm
Configuration for the "num" library:
target architecture ...... generic (asm level 0)
Configuration for the "graph" library:
options for compiling .... -I/usr/X11R7/include
options for linking ...... -L/usr/X11R7/lib -lX11
The "labltk" library: not supported
** Objective Caml configuration completed successfully **
答案1
AIX 不再是官方支持的平台。有一个OCaml 3.11.2 的非官方移植。
您可以使用 GNU make 修复立即生成的错误。或者,您可以尝试调整 makefile。otherlibs/Makefile.shared
使用非标准构造?=
;更改三行以使用=
, ieCMIFILES = $(CAMLOBJS:.cmo=.cmi)
等。您还需要更改以移动具有以下otherlibs/num/Makefile
定义的行,以及类似地移动以下定义。CMIFILES
include ../Makefile
otherlibs/dbm/Makefile
otherlibs/str/Makefile
CLIBNAME
include ../Makefile
我建议搜索或发布在caml列表。这是与可能仍在 AIX 上使用 Ocaml 的其他人取得联系的最佳地点。
答案2
你应该把完整的日志(放在pastebin或其他什么地方)而不是剪掉任意部分!还显示make --version
(GNU make 应该可以工作)的输出。