您的位置:首页 > 其它

Mac OS X 下编译使用 LAJP

2014-05-06 09:21 183 查看
项目中需要用到java中调用systemV 消息队列,因此用了LAJP,使用它的消息队列机制来完成进程间的通信。之前程序在Linux下开发,lajp编译成了动态链接库so文件,很简单,现在mac os开发,原来的东西照搬过来肯定是不行了,需要自己重新编译得到动态链接库。

首先是LAJP的相关介绍:https://code.google.com/p/lajp/wiki/LAJP_manual

Mac OS下动态链接库的相关介绍:/article/1511533.html

linux下编译动态链接库是 gcc -shared -o c.so a.c b.c

而在Mac OS X下则是 gcc -dynamiclib -o c.dylib a.c b.c

另外,这里也记录一下lajp编译和使用过程,免得以后忘记。

1、首先下载lajp包:https://code.google.com/p/lajp/downloads/list

2、确认系统中java环境已经配置好了,编译过程中需要。

3、编译lajp,下载下来的包里有一个make.sh,当然,里面是linux中编译的方法,我自己修改了一下:

gcc lajp_MsgQ.c -dynamiclib -I. -I/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/include/darwin -o liblajpmsgq.dylib
其中用到了jdk 中的一些东西,运行以后能够生成动态链接库文件

4、按照lajp包中的提示,找到系统的java.library.path,也就是运行

System.out.println(System.getProperties().getProperty("java.library.path"));
然后在其中随便找一个路径,将liblajpmsgq.dylib放进去,修改一下权限就行

5、现在可以运行lajp包中的测试程序run_msgq.sh了,如果运行成功,那就可以使用了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: