програмата излезе с код 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' компилира файла, който е отворен и e създава .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 поддържа ли Raspberry? - 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