java - 使用Java OpenCV库的java.lang.UnsatisfiedLinkError `GOMP_4.0' Travis CI

标签 java opencv gradle travis-ci

我正在建立使用opencv的org.bytedeco.javacpp-presets版本的项目。我正在使用gradle进行依赖项管理/构建/测试等...
构建和测试在我的本地计算机上工作正常,但是在travis上运行时,出现以下错误:

Caused by:
    java.lang.UnsatisfiedLinkError: /tmp/javacpp28510966720824/libjniopencv_core.so: /usr/lib/x86_64-linux-gnu/libgomp.so.1: version `GOMP_4.0' not found (required by /tmp/javacpp28510966720824/libopencv_core.so.3.0)
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1937)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1822)
        at java.lang.Runtime.load0(Runtime.java:809)
        at java.lang.System.load(System.java:1083)
        at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:539)
        ... 10 more

我已经修改了travis.yml,以便可以查看文件是否实际存在。

$ ls -l /usr/lib/*/libgomp.so*
lrwxrwxrwx 1 root root    16 Apr 15  2012 /usr/lib/x86_64-linux-gnu/libgomp.so.1 -> libgomp.so.1.0.0
-rw-r--r-- 1 root root 55888 Apr 15  2012 /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
$ dpkg -l | grep libgomp1
ii  libgomp1                            4.6.3-1ubuntu5                                      GCC OpenMP (GOMP) support library

在我的本地(OSX)和另一台开发人员的计算机(Linux)上,一切正常。我不确定我缺少什么。

这是遇到问题的项目:
https://github.com/WPIRoboticsProjects/GRIP

具体而言,此PR:https://github.com/WPIRoboticsProjects/GRIP/pull/7

有关此问题的问题:https://github.com/bytedeco/javacpp-presets/issues/84

最佳答案

对于Maven测试目标,您可以将Maven-surefire-plugin与参数Djava.library.path一起使用,或者将maven-dependency-plugin与解压libs一起使用。
我遇到了类似的问题。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.18.1</version>
    <configuration>
        <systemProperties>
            <property>
                <name>TESSDATA_PREFIX</name>
                <value>${tessdata.directory}</value>
            </property>
        </systemProperties>
        <argLine>-Djava.library.path=${native.library.directory} -Djni.library.path=${native.library.directory}</argLine>
    </configuration>
</plugin>

关于java - 使用Java OpenCV库的java.lang.UnsatisfiedLinkError `GOMP_4.0' Travis CI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32361567/

相关文章:

python - 如何改进从图像中提取文本?

java - 使用.class文件而不是android gradle中的.java文件构建sources.jar

java - 使用 Http.Core 与 Http.Client 4 对话获取 ConnectionClosedException?

java - Java 中的多个 Mixer 输出

java - 线程异常...: null - trying to convert String from file to Integer

java - 字符引用 "&#x10"是无效的 XML 字符

android - 应用插件失败 'dagger.hilt.android.plugin'

java - actionResponse.sendRedirect(url) 不起作用

c++ - 如何判断视频是否在opencv中结束?

java - Android OpenCV圆圈HSV颜色检测