Я реализовал общую библиотеку в Linux и попытаюсь ее протестировать, но получаю сообщение об ошибке «неопределенная ссылка на` CEDD (char *) ».undefined ссылка на функцию общей библиотеки
Я использую Eclipse, со следующими параметрами:
- Путь включить файлы (здесь все в порядке)
- Путь к библиотеке и его имя. Путь правильно и имя является WISE_C (полное наименование: libWISE_C.so)
Мой код:
Test программка я использую для испытаний:
#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:
double* CEDD(char* path);
часть Descriptor.c с желаемой функции:
#include "Descriptor.h"
#include "highgui.h"
#include "cv.h"
double* CEDD(char* path)
{
IplImage* srcImg;
IplImage* ImageGrid;
...
}
Что я делаю wrog? Я повесил много статей в Интернете, но я не нашел решения.
undefined ссылка на `CEDD (char *) 'является ошибкой компилятора или компоновщика?
Отлично! Ты прав! Теперь я использую программу C для тестирования библиотеки C =), но когда библиотека подключена (Paths), я не получаю скомпилированный двоичный файл (я также не получаю никаких ошибок). Когда я удаляю все пути в lib, я получаю исполняемый файл на выходе! Как я могу быть? – user101375
У меня нет опыта работы с eclipse и без сообщения об ошибке. Я не знаю. Возможно, вы можете получить журнал команд, которые он выполняет каким-то образом. – mweerden