我在Linux中實現了一個共享庫並嘗試對其進行測試,但遇到了「未定義的對CEDD(char *)'的引用」的錯誤。對共享庫函數的未定義引用
我使用Eclipse具有下列參數:
- 路徑包括文件(這裏是 一切就OK了)
- 的路徑庫 和它的名字。路徑是正確的,並且 名字是WISE_C(全名: libWISE_C.so)
我的代碼:
#include <iostream>
#include <Descriptor.h>
int main() {
char* path = "/export/home/pdmazubi3/workspace/proj1/src/pic.jpg";
double * cedd = CEDD(path); ///// <-ERROR!
std::cout << "!!!Hello World!!!" << cedd[1];
return 0;
}
頁眉Descriptor.h:我使用的測試
測試PROGRAMM:
double* CEDD(char* path);
Descriptor.c的一部分與理想的功能:
#include "Descriptor.h"
#include "highgui.h"
#include "cv.h"
double* CEDD(char* path)
{
IplImage* srcImg;
IplImage* ImageGrid;
...
}
我在做什麼wrog?我在互聯網上發表了很多文章,但是我沒有找到解決方案。
對CEDD(char *)的未定義引用是編譯器還是鏈接器錯誤?
不,我不確定這一點。我需要這樣做嗎?我以爲我只需要一個* .so文件和一個頭文件* .h。 – user101375 2009-06-12 11:52:01
看看裏面,這樣CEDD符號在那裏定義。然後,確保.so文件已鏈接(不幸的是,我不是Eclipse上的專家,提供有關環境配置的詳細信息...) – 2009-06-12 11:54:01