C++ 程序以代码132退出
我正在使用raspbian、opencv-2.4.8和geany这是我的简单/第一个代码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
#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