Я недавно унаследовал некоторый код OpenCV. Я установил openCV на своем Mac, встроил в XCode, а затем скомпилировал и успешно запустил мою первую openCV программу "hello world" .ish.
Теперь я пытаюсь запустить код, который мне дали, но я получаю ошибки, из-за которых я полагаю, что проблема заключается в том, что исходный код запускается в 32-битной системе Windows, а мой - на 64-битном Mac .
Когда я запускаю Makefile, вводя "make"
CC = g++
CFLAGS =
LDFLAGS = -I/usr/local/include/opencv -lm -lopencv_core -lopencv_highgui -lopencv_video
ALL = vision
all: $(ALL)
vision: vision.o
$(CC) $(LDFLAGS) -o $@ $^
vision.o: vision.cpp
$(CC) $(LDFLAGS) -c $<
.PHONY: clean
clean:
rm -rf *.o core* $(ALL)
Я получаю следующий вывод ...
g++ -I/usr/local/include/opencv -lm -lopencv_core -lopencv_highgui -lopencv_video -o vision vision.o
Undefined symbols for architecture x86_64:
"cv::equalizeHist(cv::Mat const&, cv::Mat&)", referenced from:
_main in vision.o
"cv::threshold(cv::Mat const&, cv::Mat&, double, double, int)", referenced from:
_main in vision.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [vision] Error 1
Я в замешательстве; Означает ли это, что моя установка OpenCV неверна, код (особенно эти методы) должен быть изменен, или что-то еще полностью?
Примечание. Когда я закомментирую методы проблемы из кода vision.cpp, все прекрасно скомпилируется.