Я знаю, что этот вопрос похож на другие, но, похоже, ни один из них не решает мою проблему.

< Сильный > Симптомы

  • Тривиально соберите и запустите gdb_test с помощью gdb.
  • Программа SIGILL:

~/projects/gdb_test/build> gdb gdb_test           
GNU gdb (GDB; openSUSE Tumbleweed) 8.3.1
(...)

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from gdb_test...
(gdb) r
Starting program: /home/jaques/projects/gdb_test/build/gdb_test 
Missing separate debuginfos, use: zypper install glibc-debuginfo-2.31-5.9.x86_64
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7fffebae8700 (LWP 1210)]
[New Thread 0x7fffeb2e7700 (LWP 1211)]
[New Thread 0x7fffe6ae6700 (LWP 1212)]

Thread 1 "gdb_test" received signal SIGILL, Illegal instruction.
0x00007ffff7d90617 in ?? () from /usr/lib64/libopencv_gapi.so.4.2

(gdb) 

Пример проекта:

"main.cpp"

#include <iostream>

int main(int argc, char **argv) {
    std::cout << "Hello, world!" << std::endl;
    return 0;
}

CMakeLists.txt :

cmake_minimum_required(VERSION 3.0)
project(gdb_test)

find_package( OpenCV REQUIRED )    # Works fine if this line is removed.

add_executable(gdb_test main.cpp)
install(TARGETS gdb_test RUNTIME DESTINATION bin)

Окружающая среда

  • Linux-бокс с обновленным OpenSuse:

ИМЯ = "openSUSE Tumbleweed" ВЕРСИЯ = "20200622"

  • G ++ 10.1.1
  • GDB 8.3.1
  • opencv-devel 4.2.0-4.1
  • Арка x86_64
  • Без удаления, с исполняемым файлом отладочной информации:

gdb_test / build> file gdb_test gdb_test: ELF 64-разрядный исполняемый файл LSB, x86-64, версия 1 (SYSV), динамически подключаемый, интерпретатор /lib64/ld-linux-x86-64.so.2, BuildID [sha1] = 28f8c835686d92c15cb8c5cf45a201 , для GNU / Linux 3.2.0, с debug_info, без удаления


Что может быть не так?

Как решить?

Любые идеи?

Спасибо.

2
Adão Belopel 25 Июн 2020 в 21:10

1 ответ

Лучший ответ

Согласно вашему комментарию:

Я понизил версию opencv-devel-4.2.0-4.1.x86_64 до opencv3-3.4.9-2.4.x86_64, и он больше не дает сбоев ..

Я могу только сделать вывод, что посылка сломана.

Если вам действительно нужен OpenCV 4, я предлагаю вам собрать его из исходников.

2
j4x 25 Июн 2020 в 19:16