Страницы

Поиск по вопросам

воскресенье, 26 января 2020 г.

JavaCV — ошибка подключения библиотеки

#java #ubuntu #eclipse #opencv #native


Пытаюсь установить и настроить JavaCV и OpenCV на ubuntu 14.04.

Устанавливал по статье и по официальной инструкции.
Работаю в Eclipse.

В свойствах проекта в пункте Run/Debug Settings в поле VM arguments добавил строчку:

-Djava.library.path="/home/ant/opencv-3.0.0/lib


Пытаюсь запустить код из примера с официального сайта:

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;

import static org.bytedeco.javacpp.opencv_core.*;
import static org.bytedeco.javacpp.opencv_imgproc.*;
import static org.bytedeco.javacpp.opencv_imgcodecs.*;

public class Main {
    public static void main(String[] args) {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String filename = null;
        try {
            filename = bf.readLine();
        } catch (IOException e) {
            System.out.println(e);
        }
        File file = new File(filename);
        System.out.println(file.exists());
        IplImage image = cvLoadImage(filename);
        if (image != null) {
            cvSmooth(image, image);
            cvSaveImage(filename, image);
            cvReleaseImage(image);
        }
    }
}


Сам файл находит, но вот функцию cvLoadImage() не выполняет, а программа вылетает
и выводит в консоль:


  Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /home/ant/opencv-3.0.0/lib/libopencv_core.so.3.0.0
which might have disabled stack guard. The VM will try to fix the stack guard now.
  It's highly recommended that you fix the library with execstack -c , or
link it with '-z noexecstack'.


Как это исправить?
    


Ответы

Ответ 1



It's highly recommended that you fix the library with execstack -c , or link it with '-z noexecstack'. перевод: исправьте эту библиотеку, выполнив: $ execstack -c /home/ant/opencv-3.0.0/lib/libopencv_core.so.3.0.0 либо добавив (видимо, в то же поле vm arguments) строку -z noexecstack. во втором пункте (после «либо») изложена лишь моя догадка: я не знаю, как в eclipse линкуются библиотеки и где можно добавить параметры для этой линковки.

Комментариев нет:

Отправить комментарий