首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cvBlobsLib外部链接error..please帮助我

cvBlobsLib外部链接error..please帮助我
EN

Stack Overflow用户
提问于 2013-09-18 15:05:39
回答 1查看 657关注 0票数 0

今天,我在我的Visual 2010中用OpenCV为Windows编译了"cvblobslib“。

编译没有问题,我得到了"cvblobslib.lib“。

在我的项目中,我按照对库的定义设置了VisualC++,以使用这个库(C++附加目录和其他目录),如我在这里引用的说明中所示:

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

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

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

3-包含要使用blob变量的文件“BobResult.h”(确定,已完成)

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

  1. 签入项目的“项目->设置->C/C++->代码生成->使用运行时库”,并将其设置为调试多线程DLL (调试版本)或多线程DLL (发布版本)。2签入"Project->Settings->General“如何使用MFC。应该是“在共享DLL中使用MFC”。(已完成)

任何人都能帮我吗,因为有了这段代码:

代码语言:javascript
复制
#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;

}

我得到以下错误:

代码语言:javascript
复制
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 ==========

为什么我会得到“外部链接错误”??

拜托,帮帮我.我不知道该怎么办.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-19 05:18:00

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

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

  • 链接器->通用->附加库目录
  • 链接器->输入->附加依赖项

虽然,如果cvblobslib项目与prova64采用相同的解决方案,则这会更容易,在这种情况下,您可以添加一个项目引用(右键单击prova64项目,References.,添加cvblobslib项目)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18875896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档