2012-12-06 3 views
3

OpenCV e VS2010에서 새로 생겼습니다. 나는 windows7 x64에서 일한다. 나는 마커를 감지 할, 그래서 나는이 site에서 ARuco 라이브러리 다운로드 : 나는이 간단한 코드 작성 :오류 LNK2019 ARuco 및 OpenCV VS2010 C++

1>main.obj : error LNK2019: riferimento al simbolo esterno "public: __thiscall aruco::MarkerDetector::~MarkerDetector(void)" ([email protected]@@[email protected]) non risolto nella funzione _main 
1>main.obj : error LNK2019: riferimento al simbolo esterno "public: void __thiscall aruco::Marker::draw(class cv::Mat &,class cv::Scalar_<double>,int,bool)const " ([email protected]@[email protected]@[email protected]@@[email protected]@[email protected][email protected]) non risolto nella funzione _main 
1>main.obj : error LNK2019: riferimento al simbolo esterno "public: void __thiscall aruco::MarkerDetector::detect(class cv::Mat const &,class std::vector<class aruco::Marker,class std::allocator<class aruco::Marker> > &,class aruco::CameraParameters,float,bool)" ([email protected]@[email protected]@[email protected]@@[email protected]@[email protected]@[email protected]@[email protected]@@[email protected]@@[email protected]@[email protected]@[email protected]) non risolto nella funzione _main 
1>main.obj : error LNK2019: riferimento al simbolo esterno "public: __thiscall aruco::CameraParameters::CameraParameters(class aruco::CameraParameters const &)" ([email protected]@@[email protected]@@Z) non risolto nella funzione _main 
1>main.obj : error LNK2019: riferimento al simbolo esterno "public: __thiscall aruco::MarkerDetector::MarkerDetector(void)" ([email protected]@@[email protected]) non risolto nella funzione _main 
1>main.obj : error LNK2019: riferimento al simbolo esterno "public: __thiscall aruco::CameraParameters::CameraParameters(void)" ([email protected]@@[email protected]) non risolto nella funzione _main 
1>C:\Users\Cristina\Desktop\OpenCV\Progetti\MIEI PROGETTI\aruco marker\Debug\aruco marker.exe : fatal error LNK1120: 6 esterni non risolti 
========== Compilazione: 0 completate, 1 non riuscite, 0 aggiornate, 0 ignorate ========== 

수있는 사람 :이를 컴파일 할 때

#include <iostream> 
#include <stdio.h> 
#include "C:/Users/Cristina/Desktop/OpenCV/dep/aruco/src/aruco.h" 
#include "C:/Users/Cristina/Desktop/OpenCV/dep/aruco/src/cvdrawingutils.h" 
#include "C:/Users/Cristina/Desktop/OpenCV/dep/aruco/src/cameraparameters.hpp" 
#include "C:/Users/Cristina/Desktop/OpenCV/opencv/include/opencv/cv.h" 
#include "C:/Users/Cristina/Desktop/OpenCV/opencv/include/opencv/highgui.h" 
#include "C:/Users/Cristina/Desktop/OpenCV/opencv/modules/imgproc/include/opencv2/imgproc/imgproc.hpp" 
#include "C:/Users/Cristina/Desktop/OpenCV/opencv/modules/highgui/include/opencv2/highgui/highgui.hpp" 
#include "C:/Users/Cristina/Desktop/OpenCV/opencv/modules/core/include/opencv2/core/core.hpp" 

using namespace cv; 
using namespace aruco; 

int main() { 

    aruco::CameraParameters CamParam; 
    aruco::MarkerDetector MDetector; 
    vector <Marker> Markers; 
    cv::Mat img; 

    img = imread("prova marker", 0); 

    cv::namedWindow("originale", 1); 
    cv::namedWindow("risultato", 1); 

    cv::Mat risultato; 

    img.copyTo(risultato); 

    MDetector.detect(img, Markers, CamParam, -1); 

    for (int i=0; i< Markers.size(); i++) { 

     Markers[i].draw(risultato, Scalar(0,0, 255)); 
    } 

    cv::imshow("originale", img); 
    cv::imshow("risultato", risultato); 
    waitKey(0); 

return 0; 
} 

, 나는이 오류가 발생할 수를 도와주세요? 감사합니다.

+0

라이브러리를 빌드하려면 Visual Studio에서 aruco를 컴파일해야합니다. 그런 다음 Visual Studio 내의 적절한 라이브러리 폴더에 복사 한 다음 프로젝트의 속성을 편집하고 라이브러리 이름을 링커의 종속 항목으로 추가해야합니다. – karlphillip

+0

빠른 답장을 보내 주셔서 감사합니다. 그러나 여전히 내 관심사는 Visual Studio 내에서 aruco를 컴파일하는 방법에 관한 것입니다. 다시 나를 기쁘게 해주시겠습니까? – Cristina1986

+0

해결되었습니다. Karlphillip을 제안함으로써이 가이드에 따라 정적 라이브러리 (.lib)를 만들었습니다. http://msdn.microsoft.com/it-it/library/ms235627(v=vs.90).aspx 및 모든 파일 .h 및 .cpp). 그런 다음 라이브러리 .lib를 컴파일 링커의 종속성으로 추가했습니다. – Cristina1986

답변

3

Visual Studio에서 Aruco를 컴파일하여 라이브러리를 빌드해야합니다.

그런 다음 결과 lib 파일을 Visual Studio의 적절한 라이브러리 폴더로 복사하십시오.

마지막으로 프로젝트의 속성을 편집하고 라이브러리 이름을 링커의 종속성으로 추가하십시오.