如何在Linux下使用命令行构建OpenCV?(要在MapReduce中使用它)

前端之家收集整理的这篇文章主要介绍了如何在Linux下使用命令行构建OpenCV?(要在MapReduce中使用它)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
最近我正在为我的毕业项目开OpenCV.
我在 Windows环境下取得了一些成功.而且由于采用OpenCV的Windows软件包,它附带了预构建的库,所以我不用担心如何构建它们.
但是,由于该项目假设运行在CentOS作为每个节点的主机操作系统的集群上,所以我必须知道如何正确编译,并在 Linux环境下运行这些库.

我已经设置了一个VirtualBox虚拟机,并安装了Ubuntu 13.04.
但到目前为止,我仍然找不到一种方法来调整CMakeList的设置,使Java成为一个构建目标. (一个jar和一个本机库,所以我可以在MapReduce程序中导入和使用它们)
以下是OpenCV的桌面Java官方教程

http://docs.opencv.org/doc/tutorials/introduction/desktop_java/java_dev_intro.html

编译的部分很简短.所以我还是不太明白.
是因为我错过了一些Java的依赖吗?我已经安装了JVM(Jre-7u7).
还是因为我没有正确配置CMakeList.txt?

这是迄今为止所做的一切,除了它是一个完整的干净的Ubuntu

>已安装vim
>安装g
>安装cmake
>安装了cmake-curses-gui
>安装java7 JVM
>下载适用于Linux的OpenCV软件包

目标环境是CentOS作为每个节点的主机OS,该项目是一个MapReduce程序.

提前致谢.

@H_403_28@解决方法
可能你所缺少的是蚂蚁,这是一个面向java的构建工具.

当你去:

cmake -D BUILD_SHARED_LIBS=OFF ../opencv-2.4.5/

(即您正在为您的机器配置make),请检查说明java的部分.应该这样说(可能有不同的路径/版本):

--   Java:
--     ant:                         /usr/bin/ant (ver 1.8.2)
--     JNI:                         /usr/lib/jvm/java-6-openjdk/include /usr/lib/jvm/java-6-openjdk/include /usr/lib/jvm/java-6-openjdk/include
--     Java tests:                  YES

当我第一次运行cmake,我有这个:

--   Java:
--     ant:                         NO
--     JNI:                         NO
--     Java tests:                  YES

哪个表示它找不到蚂蚁,所以没有创建一个.jar文件.
我只是使用存储库中的版本:

sudo apt-get install ant

我再次运行cmake,上面的选项,通过蚂蚁的路径(我得到JNI免费!).

注意:您可能想要非常仔细地阅读cmake的输出,因为它告诉您在您的计算机上将要构建什么,并且您可能会丢失一些库.

如果您发现JNI仍然缺失.

cmake是(主要是第一个,方便的,可以解释为?)寻找jni.h,这应该是具体的$JAVA_HOME / include / jni.h所以你需要设置$JAVA_HOME到你的jdk的主文件夹.

我使用哪个javac和ls -l跟随一系列符号链接,以确定我的java 1.7安装在哪里.你也可以使用locate jni.h来处理树,或者简单地看看/usr/lib / jvm或类似的内容.

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

你可能想要检查一下你有没有权利

ls $JAVA_HOME/bin/javac
/usr/lib/jvm/java-7-openjdk-amd64/bin/javac

ls $JAVA_HOME/include/jni.h
/usr/lib/jvm/java-7-openjdk-amd64/include/jni.h

有趣的是,当我再次运行cmake命令时,它会拾取一个不同的JNI文件夹:

--     JNI:                         /usr/lib/jvm/java-7-openjdk-amd64/include /usr/lib/jvm/java-7-openjdk-amd64/include /usr/lib/jvm/java-7-openjdk-amd64/include

一旦你有了,运行make命令.如果你痴迷,你会看到一堆.java文件已经过去了.无论哪种方式,最终都会在./bin文件夹中使用.jar文件.(在我的情况下,它被称为opencv-245.jar,因为这是我下载的代码的版本).

猜你在找的Linux相关文章