当前位置: 首页 > 工具软件 > LAJP > 使用案例 >

Mac OS X 下编译使用 LAJP

帅令雪
2023-12-01

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

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

Mac OS下动态链接库的相关介绍:http://blog.csdn.net/mydo/article/details/8907498

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了,如果运行成功,那就可以使用了。

 类似资料: