3

我有一个 32 位架构,所以我必须从源代码构建 opa。

配置工作正常:

./configure -ocamlopt /opt/opa/bin/ocamlopt.opt -ocamlfind /opt/opa/bin/ocamlfind

Checking your OS... Linux
Checking your architecture... ix86
Checking ocamlopt... /opt/opa/bin/ocamlopt.opt
Checking ocamlbuild... /opt/opa/bin/ocamlbuild
Checking ocamldir... /opt/opa/lib/ocaml
Checking ocaml version... 3.12.0
Checking your ocaml setup... 3.12.0, Unix 32bit
Checking for camlp4... /opt/opa/bin/camlp4o
Checking for perl 5... found
Checking for camlidl... /opt/opa/bin/camlidl
Checking libnatpmp... /opt/opa/lib/ocaml/libnatpmp.a, OK
Checking miniupnpc... /opt/opa/lib/ocaml/libminiupnpc.a, OK
Checking for ocamlfind... /opt/opa/bin/ocamlfind
Checking for ssl... ocamlfind:/opt/opa/lib/ocaml/ssl, OK
Checking for cryptokit... +cryptokit, OK
Checking for camlzip... +camlzip, OK
Checking for graph... +ocamlgraph, OK
Checking for ulex... +ulex, OK

Congrats, you're all set. Installation will be done in:
/usr/local

退货:

制作

Ocamlbuild plugin generation

_build/myocamlbuild -no-plugin -j 6 -tag debug pplib/ppml.native ocamlbase.top libbase/ocamlbase database/database_server.native jslang/jsstat.native database/database_tool.native opatop/opatop.native passlib/opatrack.sh qmlcompilers /qmljs_exe.native compilerlib/opadep.sh opabsl/opabslgen.bypass tools/odep.native libbase/testfilepos.native opabsl/serverLib.cmi tools/odeplink.native protocols/genproto.native libbase/bslServerLib.ml opalang/opa2opa.native protocols /mlidl.native 工具/jschecker/compiler.jar 工具/ofile.native 协议/wsdl2ml.native 传播/spawn.sh opa/main.native bash_completion opadoc/opadoc.native pplib/ppopa.native pplib/ppjs.native libbase/gen_platform teerex/trx_ocaml.native teerex/trx_interpreter.native libbsl/bslregister.native libbsl/bslbrowser.native libbsl/bslbrowser passlib/passdesign。本机 opa-packages.stamp

+ /opt/opa/bin/ocamldep.opt -pp '/opt/opa/bin/camlp4o -I +ulex pa_ulex.cma pr_o.cmo'   -modules libbase/indexer.ml > libbase/indexer.ml.depends
Camlp4: Uncaught exception: DynLoader.Error ("pa_ulex.cma", "file not found in path")

Preprocessing error on file libbase/indexer.ml
Command exited with code 2.
Compilation unsuccessful after building 208 targets (204 cached) in 00:00:04.
make: *** [all] Erreur 10
4

2 回答 2

4

抱歉,OPA 目前不支持 32 位架构。我们正在做这件事。

您可以阅读我们在博客上发布的这篇文章,我们回答了这个问题(和其他问题): http ://blog.opalang.org/2011/07/readers-questions-1.html

问:缺少 32 位和 Windows 版本的编译器

A:是的,我们在这里有罪。我们正在开发 32 位版本,希望能在几周内完成。Windows 版本稍微复杂一些,但我们确实有一个可用的 Windows 版本,毫无疑问我们会再次拥有它。顺便说一句,我们可以使用一些帮助。现在 Opa 是开源的。有志愿者吗?

保持联系!

于 2011-07-26T16:26:59.230 回答
2

我为 32 位 Ubuntu 10.10 编译了 Opa。在构建完成之前,必须从 Debian 'Wheezy'(测试)安装一堆 pkg。所需软件包:

    camlp4_3.12.0-7_i386.deb
    camlp4-extra_3.12.0-7_i386.deb
    libcryptokit-ocaml_1.3-14+b2_i386.deb
    libcryptokit-ocaml-dev_1.3-14+b2_i386.deb
    libfindlib-ocaml_1.2.7+debian-1_i386.deb
    libfindlib-ocaml-dev_1.2.7+debian-1_i386.deb
    libocamlgraph-ocaml-dev_1.7-1+b2_i386.deb
    libssl-ocaml_0.4.5-1_i386.deb
    libssl-ocaml-dev_0.4.5-1_i386.deb
    libzip-ocaml_1.04-6+b2_i386.deb
    libzip-ocaml-dev_1.04-6+b2_i386.deb
    ocaml_3.12.0-7_i386.deb
    ocaml-base_3.12.0-7_i386.deb
    ocaml-base-nox_3.12.0-7_i386.deb
    ocaml-findlib_1.2.7+debian-1_i386.deb
    ocaml-interp_3.12.0-7_i386.deb
    ocaml-nox_3.12.0-7_i386.deb
    ocaml-ulex_1.1-2+b1_i386.deb

将这些全部放在一个目录中,然后从那里运行: dpkg --install --force-depends --auto-deconfigure *.deb

还应该运行 sudo apt-get purge ocaml ocaml-interp ocaml-nox-interp ocaml-nox(或类似的东西......从内存中)..从系统中清除 ocaml 3.11,以便可以通过上述安装 3.12。 deb 文件。

注意:'texttimer.opa' 的编译需要永远(至少在我的 atom 上网本上)。我以为它被挂起或其他什么,但大约 15 分钟后它完成了。让它运行。

到目前为止,我只尝试了 hello_opa.opa,但它看起来很有希望!

[第二天早上] 我在我的工作机器上安装了 amd64 的预编译 .deb 只是为了比较 - 重新编译了相同的 hello Chat 应用程序,它就像在我的 32 位 Ubuntu 上一样工作。但是,这两个应用程序都不显示任何图像资源——教程提到将“opa-logo.png”和“user.png”添加到资源目录中,编译会选择这些资源,但生成的应用程序显示没有图片。我怀疑这与我的 32 位版本有关,但显然不是。

有人知道为什么聊天应用程序不显示图像吗?CSS似乎确实引用了这两个PNG。我只是从谷歌图像中抓取随机 PNG 来使用,但这不重要。

于 2011-10-25T05:52:15.257 回答