一、背景
假设源代码路径为/home/freeswitch

二、编译安装libesl.a
1. cd /home/freeswitch(源代码的根目录)

执行./configure,以便生成必要的Makefile文件。

2. cd /home/freeswitch/libs/esl

make && make install

3. 默认libesl.a安装在/usr/local/freeswitch/lib目录下

需要拷贝到/home/freeswitch/libs/esl目录下

因为esl的Makefile默认libesl.a这个库文件在当前目录

三、编译esl.jar和libesljni.so

1. 修改java模块的Makefile
  cd /home/freeswitch/libs/esl/java 
  默认的关于java头文件的配置
  LOCAL_CFLAGS=-I../src/include -I/usr/java/jdk1.6.0_14/include -I/usr/java/jdk1.6.0_14/include/linux -I/usr/lib/jvm/java-6-openjdk/include/ -I/usr/lib/jvm/java/include -I/usr/lib/jvm/java/include/linux
  修改为机器的实际路径,例如

LOCAL_CFLAGS=-I../src/include -I/usr/java/jdk1..0_112/include -I/usr/java/jdk1..0_112/include/linux

2. 编译

cd /home/freeswitch/libs/esl(返回上一级目录)

make javamod

3. cd /home/freeswitch/libs/esl/java

如果一切顺利的话,你能看到esl.jar和libesljni.so这两个文件。

OK,可以在java中通过jni调用libesljni.so库了。

freeswitch编译java esl的更多相关文章

  1. Eclipse不自动编译java文件的终极解决方案

    最近我的eclipse经常犯傻,项目中总是有很多,启动项目也是没有启动类.查了下项目中生成的class文件,我靠竟然没有,或者还是以前的.原来是eclipse犯傻了,它没帮我自动编译java文件.一般 ...

  2. 用命令行编译java并生成可执行的jar包

    用命令行编译java并生成可执行的jar包 1.编写源代码. 编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java.程序结构如下: ...

  3. Android反编译(一)之反编译JAVA源码

    Android反编译(一) 之反编译JAVA源码 [目录] 1.工具 2.反编译步骤 3.实例 4.装X技巧 1.工具 1).dex反编译JAR工具  dex2jar   http://code.go ...

  4. 使用maven编译Java项目 http://www.tuicool.com/articles/YfIfIrq

    使用maven编译Java项目 时间 2014-07-17 17:42:37  Way Lau's Blog 原文  http://www.waylau.com/build-java-project- ...

  5. jad 反编译java

    1 安装 解压jad.zip文件到任何的目录.将会创建两个文件,一个是jad.exe另一个是readme文 件,不需要任何别安装2 如何使用jad 如果我们有一个单独的java文件example1.c ...

  6. Linux下编译java并生成jar包

    下面是WordCount.java类 package com.ll; import java.io.IOException; import java.util.Iterator; import jav ...

  7. Eclipse不能自动编译 java文件的解决方案

    前段时间出现了eclipse 不自动编译java文件的问题,在网上找了好长时间,总算把问题解决了,现在把这个问题的解决方法总结一下. 1,看看project -- Build Automaticall ...

  8. 利用ant的javac任务来编译java程序

    <?xml version="1.0" encoding="UTF-8"?> <project name="javaTest&quo ...

  9. 使用JavaCompiler编译java源文件

    从1.6版本的JDK开始,JDK提供了标准的包可以方便的调用JVM的编译器,可以方便的使用JVM的编译器来编译java源文件.JDK提供的调用接口是JavaCompiler类,该类在JDK的tools ...

随机推荐

  1. iOS可持续化集成: Jenkins + bundler + cocoapods + shenzhen + fastlane + pgyer

    工具介绍 1. bundler bundler用于管理ruby gem的工具,我们用来管理cocoapods以及fastlane的版本.直接sudo gem install bundler就可以.然后 ...

  2. linux 升级系统内核linux-4.10版本

    http://blog.csdn.net/steven_liwen/article/details/68487241

  3. 读CRecordset

    void CDictCol::LoadDictCol(void) { // 加载数据字典信息 CString cstrSql; cstrSql.Format("SELECT dc.TblID ...

  4. c#面试3(选择题)

    1.下列有关基本类的大小不正确的是 A.int类型是4个字节 B.bool类型是1个字节 C.long类型是8个字节 D.char类型是一个字节 3.有关数组说法不正确的是 A.数组的内存是分配在栈中 ...

  5. C# 弹出USB外接硬盘(U盘)

    最近一个项目需要通过代码来弹出USB外接硬盘设备,经过google找到了下面这个类库: http://www.codeproject.com/Articles/13530/Eject-USB-disk ...

  6. Linux 网络设备驱动开发(一) —— linux内核网络分层结构

    Preface Linux内核对网络驱动程序使用统一的接口,并且对于网络设备采用面向对象的思想设计. Linux内核采用分层结构处理网络数据包.分层结构与网络协议的结构匹配,既能简化数据包处理流程,又 ...

  7. linux shell scripts:Syntax error: Bad for loop variable

    执行脚本报错 #!/bin/bash s=0 for (( i=1; i<=100; i++ )) do s=$(( $s + $i )) done echo $s sh add.sh 报错: ...

  8. Android -- ContentProvider与联系人

    数据库                                                                                         读联系人 raw ...

  9. XMPPFrameWork IOS 开发(四)消息和好友上下线

    原始地址:XMPPFrameWork IOS 开发(四) 消息 //收到消息 - (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XM ...

  10. JVisualVM简介与内存泄漏实战分析

    JVisualVM简介与内存泄漏实战分析 学习了:https://blog.csdn.net/kl28978113/article/details/53817827