No se puede compilar un archivo fuente opencv (C++) usando 'pkg-config --cflags --libs opencv'

No se puede compilar un archivo fuente opencv (C++) usando 'pkg-config --cflags --libs opencv'

Compilé un archivo opencv (C++) usando la línea de comando

g++ facedetect.cpp -o facedetect 'pkg-config --cflags --libs opencv'

pero tuve un error

g++: error: pkg-config --cflags opencv: No such file or directory 
g++: error: pkg-config --libs opencv: No such file or directory

Mientras que cuando copio las bibliotecas de este comando:

pkg-config --cflags --libs opencv

Y péguelo manualmente en el comando g++, luego se ejecuta. El problema es que no puede reconocer las bibliotecas de pkg-config --cflags --libs opencv, pero no sé cómo solucionarlo. Si alguien tiene experiencia sobre esto, ¡ayúdeme a resolverlo! ¡Muchas gracias!

Respuesta1

Para obtener el resultado de un comando insertado en otro comando, use $(...)la sintaxis.

g++ facedetect.cpp -o facedetect $(pkg-config --cflags --libs opencv)

Respuesta2

Usaste las comillas incorrectas. Deberías haber usado el acento inverso `no el apóstrofe'. O se ha señalado que la construcción $( ) también funciona e incluso permite el anidamiento.

información relacionada