Я знаю, что этот вопрос похож на другие, но, похоже, ни один из них не решает мою проблему.
< Сильный > Симптомы
- Тривиально соберите и запустите
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, без удаления
Что может быть не так?
Как решить?
Любые идеи?
Спасибо.
1 ответ
Согласно вашему комментарию:
Я понизил версию opencv-devel-4.2.0-4.1.x86_64 до opencv3-3.4.9-2.4.x86_64, и он больше не дает сбоев ..
Я могу только сделать вывод, что посылка сломана.
Если вам действительно нужен OpenCV 4, я предлагаю вам собрать его из исходников.
Похожие вопросы
Новые вопросы
c++
C++ — это язык программирования общего назначения. Изначально он разрабатывался как расширение C и имел аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде, который будет скомпилирован с помощью компилятора C++. Используйте тег версии для вопросов, связанных с конкретной стандартной версией [C++11], [C++14], [C++17], [C++20] или [C++23]. и т.д.