C++ 程序以代码132退出

C++ 程序以代码132退出,c++,opencv,raspberry-pi,raspbian,C++,Opencv,Raspberry Pi,Raspbian,我正在使用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/p

我正在使用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;
    }
}    
它可以完美地编译和构建,但当我执行它时,这就是我的输出

非法指令


(程序退出,代码:132)

我已在internet上搜索了此退出代码,但找不到任何关于它的线程或问题

132=128+4

人员出口:

>128   A command was interrupted by a signal.
man-s 7信号

SIGILL        4       Core    Illegal Instruction
以后


-I/usr/local/include-I/usrlocal/include/opencv
对于仅编译(
-c
)调用有意义(但对于链接可执行文件的第二个
g++
调用没有意义)。但是库不是由它们的完整路径指定的。您通常要做的是为每个目录指定一个
-L/usr/local/lib
(或类似),并为这些目录中的每个库指定一个
-lopencv\u calib3d
(或类似)(省略
lib

如果您打开了所有警告,您应该看到,您的错误路径缺少
return
语句。我添加了-Wall(用于编译和生成)为了启用警告,但仍然是相同的结果我对raspbian来说是全新的,我无法理解为什么会产生此错误,即使我使用的是opencv的示例代码。同样的错误出现了任何关于如何查找/调试此错误的建议。我将sudo添加到我的execute命令中。现在,非法指令消失了,但仍然给出了退出程序的代码你们给我的建筑指令对我来说很奇怪。例如:
“f'
-c
开关请求“仅编译”,因此应该有一个.o文件,但在下一个命令中没有使用。因此,我猜
“e”
(为什么要加引号?)是可执行文件,
e
,由第二个命令编译和链接。-需要知道
$(pkg config…)是什么内容
returns;库名称应位于compile/link命令的末尾。对于geany,“f”编译打开的文件,“e”创建具有相同名称的.o文件pkg config returns'-I/usr/local/include-I/usrlocal/include/opencv/usr/local/lib/libopencv_calib3d.so'等所有.so文件@laune
SIGILL        4       Core    Illegal Instruction