使用eclipse查找opencv本机库不起作用
我试图在ubuntu安装中使用opencv,并遵循this教程。一切似乎都很好,它甚至在安装的部件中列出,所以我开始了this教程。直到你不得不将opencv添加为用户库的那一刻,这一切都进行得很顺利,因为它不在找到的库列表中(完全为空)。我查看了整个opencv文件夹,也找不到任何类似于库的东西。我是否遗漏了什么?你知道怎么解决这个问题吗
请注意,它确实成功地产生了。jar文件,但是库仍然丢失。如果有必要,opencv安装在usr/local/src中
如果为了解决这个问题,您需要任何额外的信息,请随时在评论中询问
这可能与问题有关:
ulap:/usr/local/src/opencv-2.4.8/opencv/build/bin$ ant -DocvJarDir=path/to/dir/containing/opencv-248.jar -DocvLibDir=/usr/local/src/opencv-2.4.8/opencv/build/bin /opencv_java248/native/library
Buildfile: /usr/local/src/opencv-2.4.8/opencv/build/bin/build.xml
BUILD FAILED
Target "/opencv_java248/native/library" does not exist in the project "SimpleSample".
Total time: 0 seconds
thijs@thijs-ulap:/usr/local/src/opencv-2.4.8/opencv/build/bin$ ant -DocvJarDir=path/to/dir/containing/opencv-248.jar -DocvLibDir=/usr/local/src/opencv-2.4.8/opencv/build/bin /opencv_java248/native/library
Buildfile: /usr/local/src/opencv-2.4.8/opencv/build/bin/build.xml
BUILD FAILED
Target "/opencv_java248/native/library" does not exist in the project "SimpleSample".
Total time: 0 seconds
这是我的身材。xml:
<property name="src.dir" value="src"/>
<property name="lib.dir" value="${ocvJarDir}"/>
<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
</path>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir" value="${build.dir}/jar"/>
<property name="main-class" value="${ant.project.name}"/>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac includeantruntime="false" srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<target name="run" depends="jar">
<java fork="true" classname="${main-class}">
<sysproperty key="java.library.path" path="${ocvLibDir}"/>
<classpath>
<path refid="classpath"/>
<path location="${jar.dir}/${ant.project.name}.jar"/>
</classpath>
</java>
</target>
<target name="rebuild" depends="clean,jar"/>
<target name="rebuild-run" depends="clean,run"/>
奔跑
ulap:/usr/local/src/opencv-2.4.8/opencv/samples/java/ant$ ant -DocvJarDir=/usr/local/src/opencv-2.4.8/opencv/build/bin rebuild-run
给了我:
clean:
compile:
[mkdir] Created dir: /usr/local/src/opencv-2.4.8/opencv/samples/java/ant/build/classes
[javac] Compiling 1 source file to /usr/local/src/opencv-2.4.8/opencv/samples/java/ant/build/classes
jar:
[mkdir] Created dir: /usr/local/src/opencv-2.4.8/opencv/samples/java/ant/build/jar
[jar] Building jar: /usr/local/src/opencv-2.4.8/opencv/samples/java/ant/build/jar/SimpleSample.jar
run:
[java] Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java248 in java.library.path
[java] at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1709)
[java] at java.lang.Runtime.loadLibrary0(Runtime.java:844)
[java] at java.lang.System.loadLibrary(System.java:1051)
[java] at SimpleSample.<clinit>(Unknown Source)
[java] Could not find the main class: SimpleSample. Program will exit.
[java] Java Result: 1
rebuild-run:
BUILD SUCCESSFUL
Total time: 1 second
# 1 楼答案
我认为你对ant执行了错误的命令。你可以在这里阅读手册:https://ant.apache.org/manual/running.html
以下是运行ant的格式:
因此,也许您的命令行应该如下所示:
鉴于/usr/local/src/opencv-2.4.8/opencv/build/bin包含opencv-248。罐子
如你的身材所示。属性ocvJarDir指向类路径位置的xml文件,用于构建项目:
并且需要在生成后的命令行中指定目标“重建运行”。xml没有指定默认目标
# 2 楼答案
根据第一个教程(如何从源代码构建OpenCV),结果应该是一个JAR文件和OpenCV目录的
.so
目录中的bin/
本机库。在“在UBUNTU中使用OPENCV(JAVA)设置ECLIPSE”教程中,您必须按照教程中的步骤创建用户库。这个过程包括浏览文件系统,选择第一个教程生成的OpenCV JAR,然后选择.so
文件作为本机库。Eclipse不会自动“找到”您的OpenCV库,您必须对其进行配置以了解它,这就是第二个教程所做的# 3 楼答案
尝试安装2.4.6版本。与旧版本相比,我在安装时也遇到了类似的问题。也许在月食中也是如此