программа завершилась с кодом 132

я использую raspbian, opencv-2.4.8 и geany, это мой простой/первый код

#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
using namespace std;
using namespace cv;
int main ()
{
    Mat image=imread("/home/pi/Desktop/pic3.png");
    if (! image.data)
    {
        cout<<"error"<<endl;
    }
    else
    {
        namedWindow("display",WINDOW_AUTOSIZE)
        imshow("display",image);
        waitKey(0);
        return 0;
    }
}    

это команды компиляции и сборки в geany->project->properties->build

g++ $(pkg-config --cflags opencv-2.4.8) -c "f'
g++ $(pkg-config --clfags --libs opencv-2.4.8) -o "e" "f'

и он отлично компилируется и строится, но когда я его запускаю, это мой вывод

Незаконная инструкция


(программа завершилась с кодом: 132)

я искал этот код выхода в Интернете, но не смог найти ни одной темы или проблемы по этому поводу


person ibnetariq    schedule 08.06.2014    source источник
comment
Если вы включили все предупреждения, вы должны увидеть, что вам не хватает оператора return для пути к ошибке.   -  person πάντα ῥεῖ    schedule 08.06.2014
comment
я добавил -Wall (как для компиляции, так и для сборки), чтобы включить предупреждения, но все тот же результат   -  person ibnetariq    schedule 08.06.2014


Ответы (1)


132 = 128 + 4

Выход человека:

>128   A command was interrupted by a signal.

человек -s 7 сигнал

SIGILL        4       Core    Illegal Instruction

Позже

-I/usr/local/include -I/usrlocal/include/opencv имеет смысл для вызова только для компиляции (-c) (но не для второго вызова g++, который связывает исполняемый файл). Но библиотеки не указываются их полными путями. Обычно вы указываете один -L/usr/local/lib (или аналогичный) для каждого каталога и -lopencv_calib3d (или аналогичный) для каждой библиотеки в этих каталогах (опуская lib и .so).

person laune    schedule 08.06.2014
comment
я совершенно новичок в raspbian, и я не могу понять, почему эта ошибка генерируется, даже если я использую пример кода opencv, появляется та же ошибка, любое предложение, как найти/отладить эту ошибку - person ibnetariq; 08.06.2014
comment
я добавил sudo к моей команде выполнения, теперь незаконная инструкция исчезла, но все еще дает выход из программы с кодом 132 - person ibnetariq; 08.06.2014
comment
Команды, которые вы даете для строительства, кажутся мне очень странными. Например: "f'. Переключатель -c запрашивает только компиляцию, поэтому должен быть файл .o, но он не используется в следующей команде. Итак, я предполагаю, что "e" (почему в кавычках?) — это исполняемый файл e, скомпилированный и связанный второй командой. - Требуется знать, что возвращает $(pkg-config...); имена библиотек должны идти в конец команд компиляции/связывания. - person laune; 08.06.2014
comment
его для geany f' компилирует открытый файл и создает файл .o с тем же именем - person ibnetariq; 09.06.2014
comment
pkg-config возвращает '-I/usr/local/include -I/usrlocal/include/opencv /usr/local/lib/libopencv_calib3d.so' и так далее во всех файлах .so @laune - person ibnetariq; 09.06.2014
comment
Добавлены некоторые комментарии по компиляции и компоновке. - person laune; 09.06.2014
comment
я попробовал ваше предложение, но результат тот же Незаконная инструкция @laune - person ibnetariq; 10.06.2014
comment
я не думаю, что моя проблема заключается в ее компиляции или сборке, создается исполняемый файл, и когда я запускаю его с помощью ./test, я получаю эту ошибку - person ibnetariq; 10.06.2014
comment
Компиляция и/или сборка могут быть проблемой - например, когда вам удалось установить компилятор или библиотеку, которая содержит инструкции, не поддерживаемые этим процессором. Можно заставить gcc отображать детали. - Поддерживает ли openCV малину? - person laune; 10.06.2014
comment
да, люди работают над opencv + raspberry pi [robertcastle .com/2014/02/installing-opencv-on-a-raspberry-pi/] . [mitchtech.net/category/tutorials/raspberry-pi/] @laune - person ibnetariq; 10.06.2014
comment
Ну, если оставить в стороне openCV, можете ли вы скомпилировать и выполнить программу hello world на C++? - person laune; 10.06.2014
comment
да, работает идеально @laune - person ibnetariq; 10.06.2014
comment
Логичный вывод - что-то не так с библиотекой. Ссылки, которые вы дали выше, больше не работают. - person laune; 10.06.2014
comment
мой плохой, там было дополнительное] в конце обеих ссылок, они работают, и я попробую новую переустановку, давайте посмотрим .... - person ibnetariq; 10.06.2014