Для тех, кто ищет актуальные вопросы, я оставляю ответ.
Следующая команда печатает каталоги заголовочных файлов OpenCV.
pkg-config --cflags opencv
// -I/usr/local/include/opencv -I/usr/local/include
Следующая команда печатает общие объектные файлы
(в каталоге /usr/local/lib
в следующем случае)
которые используются для динамического связывания.
Динамическое связывание - это ссылка на ваш исполняемый файл (например, main
file)
к общим объектным файлам (например, .so
files) во время выполнения
pkg-config --libs opencv
// -L/usr/local/lib -lopencv_cudabgsegm -lopencv_cudaobjdetect
// -lopencv_cudastereo -lopencv_stitching -lopencv_cudafeatures2d
// -lopencv_superres -lopencv_cudacodec -lopencv_videostab
// ...
Вы можете использовать вышеперечисленные зависимости
(каталоги заголовочных файлов и общие объектные файлы) в вашей команде компиляции
написав pkg-config --cflags opencv
и pkg-config --libs opencv
g++ `pkg-config --cflags opencv` \
-o main \
/your_cpp_file_path/source.cpp \
`pkg-config --libs opencv`
Обратите внимание, что `
является символом обратного тона, а не '
используется символ обратной галочки в команде linux
использовать результат команды в команде
Например, эта часть pkg-config --cflags opencv
заменена
с результатом pkg-config --cflags opencv