Недавно я установил opencv на Ubuntu 12.04.5 из хранилища, используя эту команду.Ubuntu Незаконная инструкция opencv
sudo apt-get install libopencv-dev python-opencv
Когда я пытаюсь запустить следующий код, чтобы подтвердить, что он работает должным образом я получаю недопустимую инструкцию (она составлена отлично).
#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include<iostream>
using namespace std;
int main(){
cv::Mat img;
img = cv::imread("RO.ppm");
cout << img.size() << endl;
return 0;
}
Я скомпилировал эту команду (из-за неопределенных опорных ошибок).
g++ -o test test.cpp $(pkg-config opencv --cflags --libs)
Update: закомментировав COUT линии не меняет результата, и я проверил, что тройная RO.ppm существует в этой директории (даже если он не imread не выдаст ошибку с незаконным или не нашел ввода в моем опыте). Я предполагаю, что мой вопрос в два раза является причиной неправильных ошибок в инструкции и как это исправить?
Комментировать строку cout по-прежнему приводит к нелегальной инструкции, также основанной на моем опыте в C++, не получил ли я более неопределенное сообщение об ошибке типа ошибки и где это произошло? –
Он компилируется безопасно на моем ПК при комментировании строки cout. Также ваш код дает ошибку компиляции, когда я пытался: test.cpp: 12: 22: error: нет соответствия для «operator << 'in' std :: cout << cv :: Mat :: MSize :: operator()() const() ' –
Если вы получаете ошибку во время выполнения, это может быть связано с форматом ввода «ppm». Вы пробовали его с более распространенными форматами, такими как jpeg или png? –