Visual c++ cvBlobsLib外部链接错误..请帮助我 今天我在VisualStudioC++ 2010中用OpenCV编译了Windows的“CVBLBLISB”。

Visual c++ cvBlobsLib外部链接错误..请帮助我 今天我在VisualStudioC++ 2010中用OpenCV编译了Windows的“CVBLBLISB”。,visual-c++,opencv,cvblobslib,Visual C++,Opencv,Cvblobslib,编译顺利,我得到了“cvblobslib.lib” 我已经按照库的构造来设置我的项目中的VisualC++,使用这个库(C++附加目录等),在这里我引用的是: “1-打开库的项目并构建它(确定,完成) 2-在应使用库的项目中,添加: 2.1在“项目/设置/C++/预处理器/附加包括”中 目录“添加存储blob库的目录(完成) 2.2在“项目/设置/链接/输入/附加库路径”中添加 存储blob库的目录,位于“对象/库”中 模块“添加cvblobslib.lib文件(在哪里?在visual stud

编译顺利,我得到了“cvblobslib.lib”

<>我已经按照库的构造来设置我的项目中的VisualC++,使用这个库(C++附加目录等),在这里我引用的是:

“1-打开库的项目并构建它(确定,完成) 2-在应使用库的项目中,添加:

2.1在“项目/设置/C++/预处理器/附加包括”中 目录“添加存储blob库的目录(完成)

2.2在“项目/设置/链接/输入/附加库路径”中添加 存储blob库的目录,位于“对象/库”中 模块“添加cvblobslib.lib文件(在哪里?在visual studio文件夹中还是在我的项目文件夹中?)

3-包括要在其中使用blob变量的文件“BlobResult.h”(确定,完成)

注意:验证在使用cvblobslib.lib的项目中,MFC运行时库没有混合:

  • 签入项目的“项目->设置->C/C++->代码生成->使用运行时库”,并将其设置为 调试多线程DLL(调试版本)或多线程DLL(发布版本)。 2检查“项目->设置->常规”如何使用MFC。它应该是“在共享DLL中使用MFC”。(完成)
  • 有人能帮我吗,因为有了这个代码:

    #include <opencv\cv.h>
    #include <opencv\highgui.h>
    #include <opencv2\highgui\highgui.hpp>
    #include <opencv\cxcore.h>
    #include <stdio.h>
    #include <conio.h>
    
    // Main blob library include
    #include "BlobResult.h"
    
    
    using namespace std;
    using namespace cv;
    
    
    int main()
    {
    
    CBlobResult blobs;
    int i;
    CBlob *currentBlob;
    IplImage *original,*originalThr,*displayedImage;
    
    //carica immagine
    original = cvLoadImage("pic6.png", CV_LOAD_IMAGE_GRAYSCALE);
    cvThreshold(original,originalThr,100,255,CV_THRESH_BINARY);
    
    //cerca le blob non bianche
    blobs = CBlobResult(originalThr,NULL,255);
    
    //le esclude quelle più piccole del parametro 2
    blobs.Filter(blobs, B_EXCLUDE, CBlobGetArea(), B_LESS, 80);
    
    //prende le parti grigie delle blob più grandi
    CBlob biggestBlob;
    CBlobGetMean getMeanColor(original);
    double meanGray;
    
    blobs.GetNthBlob(CBlobGetArea(), 0, biggestBlob);
    meanGray = getMeanColor(biggestBlob);
    
    //display it
    cvMerge(originalThr,originalThr,originalThr,NULL, displayedImage);
    
    for(i=0; i<blobs.GetNumBlobs();i++)
    {
        currentBlob = blobs.GetBlob(i);
        currentBlob->FillBlob(displayedImage, CV_RGB(255,0,0));
    }
    
    return 0;
    
    }
    
    为什么我获得“外部链接错误”


    请帮帮我…我不知道该怎么办…

    您需要正确设置64位cvblobslib.lib的路径

    转到项目设置、配置属性并查找设置:

    • 链接器->常规->其他库目录
    • 链接器->输入->其他依赖项

    尽管如此,如果cvblobslib项目与prova64位于同一解决方案中,这会更容易,在这种情况下,您可以添加项目引用(右键单击prova64项目,引用…,添加cvblobslib项目)“你是否添加了库文件名为链接器->输入-> VisualStudio中的附加依赖项?是的……但同样的问题……问题持续存在。我已经设置了正确的目录E库路径……但是问题仍然存在……为什么?我在Visual C++ 2010专业版上和W64上64位的64位程序……为什么我还要把TE参数正确,不工作??确保您构建了64位cvblobslib?我使用预构建版本…(1,13mb),之后,我使用cvblobs存档中包含的项目vc++构建了自己的cvblobs…我在任何指南中都没有读到它可能生成32位或64位…但只生成了一个发行版或调试版(我生成了调试版)…那可能是你的问题。你正在构建一个64位的项目,所以你需要链接到64位库。是的!!!我已经在x64项目中重新编译了库,并且工作正常!!没有更多的链接器错误!!非常感谢!!
    1>------ Inizio compilazione: Progetto: prova64, Configurazione: Debug x64 ------
    1>Compilazione avviata 13/09/2013 15:31:44.
    1>InitializeBuildStatus:
    1>  Aggiornamento timestamp di "x64\Debug\prova64.unsuccessfulbuild".
    1>ClCompile:
    1>  Tutti gli output sono aggiornati.
    1>ManifestResourceCompile:
    1>  Tutti gli output sono aggiornati.
    1>testeblob.obj : error LNK2019: riferimento al simbolo esterno "public: __cdecl CBlob::~CBlob(void)" (??1CBlob@@QEAA@XZ) non risolto nella funzione main
    1>testeblob.obj : error LNK2019: riferimento al simbolo esterno "public: void __cdecl CBlob::FillBlob(struct _IplImage *,struct CvScalar,int,int)" (?FillBlob@CBlob@@QEAAXPEAU_IplImage@@UCvScalar@@HH@Z) non risolto nella funzione main
    1>testeblob.obj : error LNK2019: riferimento al simbolo esterno "public: class CBlob * __cdecl CBlobResult::GetBlob(int)" (?GetBlob@CBlobResult@@QEAAPEAVCBlob@@H@Z) non risolto nella funzione main
    1>testeblob.obj : error LNK2019: riferimento al simbolo esterno "public: void __cdecl CBlobResult::GetNthBlob(class COperadorBlob *,int,class CBlob &)const " (?GetNthBlob@CBlobResult@@QEBAXPEAVCOperadorBlob@@HAEAVCBlob@@@Z) non risolto nella funzione main
    1>testeblob.obj : error LNK2019: riferimento al simbolo esterno "public: __cdecl CBlob::CBlob(void)" (??0CBlob@@QEAA@XZ) non risolto nella funzione main
    1>testeblob.obj : error LNK2019: riferimento al simbolo esterno "public: void __cdecl CBlobResult::Filter(class CBlobResult &,int,class COperadorBlob *,int,double,double)" (?Filter@CBlobResult@@QEAAXAEAV1@HPEAVCOperadorBlob@@HNN@Z) non risolto nella funzione main
    1>testeblob.obj : error LNK2019: riferimento al simbolo esterno "public: virtual __cdecl CBlobResult::~CBlobResult(void)" (??1CBlobResult@@UEAA@XZ) non risolto nella funzione main
    1>testeblob.obj : error LNK2019: riferimento al simbolo esterno "public: class CBlobResult & __cdecl CBlobResult::operator=(class CBlobResult const &)" (??4CBlobResult@@QEAAAEAV0@AEBV0@@Z) non risolto nella funzione main
    1>testeblob.obj : error LNK2019: riferimento al simbolo esterno "public: __cdecl CBlobResult::CBlobResult(struct _IplImage *,struct _IplImage *,unsigned char)" (??0CBlobResult@@QEAA@PEAU_IplImage@@0E@Z) non risolto nella funzione main
    1>testeblob.obj : error LNK2019: riferimento al simbolo esterno "public: __cdecl CBlobResult::CBlobResult(void)" (??0CBlobResult@@QEAA@XZ) non risolto nella funzione main
    1>testeblob.obj : error LNK2019: riferimento al simbolo esterno "public: double __cdecl CBlob::Mean(struct _IplImage *)" (?Mean@CBlob@@QEAANPEAU_IplImage@@@Z) non risolto nella funzione "public: virtual double __cdecl CBlobGetMean::operator()(class CBlob &)" (??RCBlobGetMean@@UEAANAEAVCBlob@@@Z)
    1>testeblob.obj : error LNK2019: riferimento al simbolo esterno "public: double __cdecl CBlob::Area(void)" (?Area@CBlob@@QEAANXZ) non risolto nella funzione "public: virtual double __cdecl CBlobGetArea::operator()(class CBlob &)" (??RCBlobGetArea@@UEAANAEAVCBlob@@@Z)
    1>C:\OPENCV\Test\Elabora64\prova64\x64\Debug\prova64.exe : fatal error LNK1120: 12 esterni non risolti
    1>
    1>Compilazione NON RIUSCITA.
    1>
    1>Tempo trascorso 00:00:00.81
    ========== Compilazione: 0 completate, 1 non riuscite, 0 aggiornate, 0 ignorate ==========