Вы также можете заставить компьютер угадывать вам библиотеки автоматически:

авно унаследовал некоторый код OpenCV. Я установил openCV на своем Mac, встроил в XCode, а затем скомпилировал и успешно запустил мою первую openCV программу "hello world".

Сейчас я пытаюсь запустить код, который мне дали, но я получаю ошибки, из-за которых я полагаю, что проблема заключается в том, что исходный код запускается в 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 
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)
lt; .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, все компилируется просто отлично.

Ответы на вопрос(3)

Ваш ответ на вопрос