У меня есть проект С++ в Eclipse CDT, который использует некоторые функции из OpevCV, и он компилируется в исполняемый файл и отлично работает. Теперь я хочу иметь новый проект на С++, который использует некоторые функции, определенные в первом. Я не могу заставить их скомпилировать и связать вместе.
У меня есть #include "..."
в соответствующих файлах в новом проекте, я добавил старый проект к ссылкам проектов нового проекта и в настройках сборки нового проекта, я добавил исходную папку старый проект в качестве опции include (-I
gcc).
Я приложил скриншот моего Eclipse в случае, если он будет полезен:
Ошибка компилятора:
Цель проекта: OtherProject
Вызов: GCC С++ Linker
g++ -o "OtherProject". /src/foo.o
./src/foo.o: В функции `main ':
/home/max/opencvjni/OtherProject/Debug/../src/foo.cpp:13: undefined ссылка на порог() '
collect2: ld вернулся 1 статус выхода
make: *** [OtherProject] Ошибка 1
Вот код в этих других файлах на других вкладках скриншота:
Threshold.cpp
#include <cv.h>
#include <highgui.h>
#include "Threshold.h"
using namespace cv;
int threshold(void) {
Mat img = imread("/home/max/opencvjni/monalisa.jpg", 0);
threshold(img, img, 127, 255, THRESH_BINARY);
imwrite("/home/max/opencvjni/monathresh.jpg", img);
return 0;
}
int main(void) {
threshold();
return 0;
}
Threshold.h
#ifndef THRESHOLD_H_
#define THRESHOLD_H_
int threshold(void);
#endif /* THRESHOLD_H_ */[/code]
- Версия Eclipse: 3.7.2
- Версия CDT: 8.0.2.201202111925
- ОС: Ubuntu 12.04
Спасибо, что посмотрели мой пост, если нет способа сделать это, или просто разумнее сделать это по-другому, пожалуйста, не стесняйтесь говорить об этом.
Привет