Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.unsatifiedlinkerror`GOMP#u 4.0';使用Java OpenCV库的Travis CI_Java_Opencv_Gradle_Travis Ci - Fatal编程技术网

java.lang.unsatifiedlinkerror`GOMP#u 4.0';使用Java OpenCV库的Travis CI

java.lang.unsatifiedlinkerror`GOMP#u 4.0';使用Java OpenCV库的Travis CI,java,opencv,gradle,travis-ci,Java,Opencv,Gradle,Travis Ci,我正在使用org.bytedeco.javacpp-presets版本的opencv构建我的项目。我正在使用gradle进行依赖关系管理/构建/测试等。。。 构建和测试在我的本地计算机上运行良好,但在travis上运行时,我遇到以下错误: Caused by: java.lang.UnsatisfiedLinkError: /tmp/javacpp28510966720824/libjniopencv_core.so: /usr/lib/x86_64-linux-gnu/libgomp.

我正在使用org.bytedeco.javacpp-presets版本的opencv构建我的项目。我正在使用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*
lrwxrwx 1根根目录2012年4月15日16日/usr/lib/x86_64-linux-gnu/libgomp.so.1->libgomp.so.1.0
-rw-r--r--1根根目录55888 2012年4月15日/usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
$dpkg-l | grep libgomp1
ii libgomp1 4.6.3-1ubuntu5 GCC OpenMP(GOMP)支持库
在我的本地(OSX)和另一台开发人员机器(Linux)上,一切正常。我不确定我错过了什么

这是遇到问题的项目:

具体而言,本PR:


关于此问题的问题:

对于maven测试目标,您可以使用带有参数Djava.library.path的maven surefire插件,或者使用带有解压libs的maven依赖插件。 我面临着类似的问题

<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>

org.apache.maven.plugins
maven surefire插件
2.18.1
TESSU前缀
${tessdata.directory}
-Djava.library.path=${native.library.directory}-Djni.library.path=${native.library.directory}

因此,我们发现问题在于
GOMP_4.0
仅适用于gcc 4.8及更高版本。Travis运行的虚拟机是GCC4.6。gcc 4.6有
GOMP_3.0
。基本上,您需要更新gcc

在travis中,最好的方法(不使用sudo)是使用他们的apt插件。 把这个加到你的.travis.yml里

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - gcc-4.8
      - g++-4.8
或者,如果您只是在Ubuntu系统上遇到此问题:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.8 g++-4.8

我用的是gradle而不是maven。我会看看是否有类似的解决方案。是的,是的,生成器找不到。所以librares for linux或.dll for windows by“java.library.path”另外,我应该如何设置native.library.directory路径?我不知道gradle把下载的依赖项放在哪里。如果可能的话,试着查看Travis CI上的日志文件。哦,我发现gradle也有同样的问题。由于添加了CvTest.java,您可以看到所有方面)