4

如何通过 opam 安装 ZeroMQ

 2 years ago
source link: https://www.ttalk.im/2019/10/how-to-install-ocaml-zeromq-library.html?amp%3Butm_medium=Atom
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

如何通过 opam 安装 ZeroMQ

由 David Gao 发布于: 2019-10-05

编程, OCaml, 便贴

OCaml的多核心支持尚不完善,但是OCaml的单进程性能非常可观,为了能让OCaml充分使用 多核心机器的计算能力,就需要使用Master slave模型和队列模型进行分布式计算。这就不 可避免的使用Socket通讯了,而ZeroMQ是一个非常不错的Socket抽象库,支持消息队列,消 息路由等模式,因此选在在OCaml中使用ZeroMQ进行通讯。

个人最近在学习OCaml和使用ZeroMQ,但是在我的OpenBSD上搞了好久,就是无法通过opam安 装ZeroMQ的绑定。

通过观察用户目录下.opam/system/build/可以发现,ZeroMQ的绑定依赖conf-zmq。而 conf-zmq只是尝试编译一个文件test.c。在编译该文件的时候,使用的命令是gcc test.c -lzmq。通过查看test.c其中包含头文件的方式为#include<zmq.h>。根据gcc的参考文件, 在Unix上会在下面这些文件夹中寻找头文件:

/usr/local/include
/usr/lib/gcc-lib/target/version/include
/usr/target/include
/usr/include

但是当我用gcc -v test.c -lzmq的时候,却发现只有:

/usr/include

gcc在编译的时候,会使用几个标准的环境变量:

  • C_INCLUDE_PATH
  • CPATH
  • CPLUS_INCLUDE_PATH
  • DEPENDENCIES_OUTPUT
  • OBJC_INCLUDE_PATH
  • SUNPRO_DEPENDENCIES

我们只需要将我们需要的路径加入到这些环境变量中就可以了

#在PATH中找到可执行文件程序的路径。
export PATH =$PATH:$HOME/bin
#gcc找到头文件的路径
C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/include/:/usr/local/include/zmq
export C_INCLUDE_PATH
#g++找到头文件的路径
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/include/:/usr/local/include/zmq
export CPLUS_INCLUDE_PATH
#找到动态链接库的路径
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH
#找到静态库的路径
LIBRARY_PATH=$LIBRARY_PATH:/usr/local/lib
export LIBRARY_PATH

接着我们只要重新执行opam install zmq就可以顺利安装OCaml的ZeroMQ组件库了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK