Подтвердить что ты не робот

Связывание библиотек с проектом QT с использованием вывода pkg-config

Это немного вопрос новичков. Я пытаюсь добавить библиотеки OpenCV в проект QT.

Этот вопрос говорит, что флаги ссылок даны

pkg-config --libs opencv

Если я вставляю вывод командной строки в файл проекта, например:

LIBS += -L/usr/local/lib -lml -lcvaux -lhighgui -lcv -lcxcore

тогда все компилируется отлично, но теперь это не переносимо. Как я могу просто ссылаться на вывод команды?

Обновление: Пробовал предложение Кена Блума, но он не будет компилироваться. Фактически созданные команды компилятора

# How it should be, at least on my machine
g++ -o QOpenCVTest main.o qopencvtest.o moc_qopencvtest.o -L/usr/lib -L/usr/local/lib -lml -lcvaux -lhighgui -lcv -lcxcore -lQtGui -lQtCore -lpthread

# with CONFIG and PKGCONFIG
g++ -o QOpenCVTest main.o qopencvtest.o moc_qopencvtest.o -L/usr/lib -lQtGui -lQtCore -lpthread
4b9b3361

Ответ 2

Кен ответ работал отлично. Я просто должен был удалить пробелы с обеих сторон + = в первую очередь.

CONFIG+=link_pkgconfig PKGCONFIG+=opencv

Ответ 3

Что-то вроде этого в вашем файле qmake должно делать

LIBS += `pkg-config --libs opencv`

Изменить: Хм, ответ Кена Блума может быть более переносимым, но erhm не задокументирован?

Ответ 4

Добавьте следующие строки в файл .pro:

INCLUDEPATH += `pkg-config --cflags opencv`
LIBS += `pkg-config --libs opencv`

Ответ 5

В новой версии Qt это нужно сделать, чтобы избежать ошибки, не найденной в пакете:

QT_CONFIG -= no-pkg-config
CONFIG += link_pkgconfig
PKGCONFIG += protobuf #or whatever package here

Также нужно было сделать это для Mac:

mac {
  PKG_CONFIG = /usr/local/bin/pkg-config
}