2016-05-24 10 views
0

Я написал простой код для создания органов в aruco библиотеке котораяОшибка компиляции opencv2 с aruco в C++

#include <opencv2/highgui/highgui.hpp> 
#include <opencv2/aruco.hpp> 

using namespace cv; 

int main(int argc, char *argv[]) { 


int dictionaryId = 100; 
int markerId = 45; 
int borderBits = 2; 
int markerSize = 2450; 
bool showImage = true; 

cv::Ptr<aruco::Dictionary> dictionary = aruco::getPredefinedDictionary(aruco::PREDEFINED_DICTIONARY_NAME(dictionaryId)); 

Mat markerImg; 
aruco::drawMarker(dictionary, markerId, markerSize, markerImg, borderBits); 

if(showImage) { 
    imshow("marker", markerImg); 
    waitKey(0); 
} 

imwrite("out.png", markerImg); 

return 0; 
} 

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

g++ -I/usr/local/include/opencv -I/usr/include/opencv2 -L/usr/local/lib/ -g -o binary create_marker.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_stitching -lopencv_aruco

как указано в одном из решений этого сайта, он дает эту ошибку

g++ -I/usr/local/include/opencv -I/usr/include/opencv2 -L/usr/local/lib/ -g -o binary create_marker.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_stitching -lopencv_aruco /usr/bin/ld: cannot find -lopencv_aruco collect2: error: ld returned 1 exit status

может кто-то пожалуйста, укажите, что я делаю неправильно, так как я новичок в opencv Спасибо!

ответ

-1

Используйте эту команду:

g++ -std=c++11 file_to_run.cpp -o output_binary_name -I/usr/local/include -L/usr/local/lib -lopencv_highgui -lopencv_aruco -lopencv_imgcodecs -lopencv_core -lopencv_videoio -lopencv_calib3d -lopencv_imgproc 

Если он все еще не работает, отправьте сообщение об ошибке снова.

Смежные вопросы