如何通过 opam 安装 ZeroMQ
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.
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组件库了。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK