es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo averiguar qué archivo lib necesito enlazar cuando uso una biblioteca de terceros?

Por ejemplo, si utilizo una función en OpenCV, puedo utilizar dos métodos para especificar las bibliotecas y vincularlas.
En primer lugar, puedo utilizar find_package(OpenCV 3.3 REQUIRED) y luego target_link_libraries(main ${OpenCV_LIBS}) porque la macro incluye todas las bibliotecas que necesitamos.
En segundo lugar, quiero vincular mi OpenCV sin “.cmake” y necesito dar a CMakeLists.txt un link_directories(/xxxx) y utilizar target_link_libraries(main opencv_core opencv_imgcodecs).

Entonces, mi pregunta es cómo puedo encontrar rápidamente cuál biblioteca debo vincular mientras utilizo el segundo método. Como utilizo una función en opencv_core.so, pero en realidad lo sé probando varias veces entre muchas bibliotecas en OpenCV.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Al utilizar el segundo método para enlazar bibliotecas, puede utilizar el comando pkg-config para encontrar rápidamente qué bibliotecas enlazar. Primero, asegúrese de haber instalado la utilidad pkg-config. Luego, ejecute el siguiente comando en la terminal:

    pkg-config --list-all | grep opencv
    

    Esto enumerará todas las bibliotecas OpenCV disponibles en su sistema. Puede seleccionar las bibliotecas que necesita según la función que esté utilizando y agregarlas al comando target_link_libraries en su archivo CMakeLists.txt. Por ejemplo, si está utilizando una función en opencv_core, puede agregar opencv_core al comando target_link_libraries de esta manera:

    target_link_libraries(main opencv_core)
    

    Utilizar pkg-config puede ahorrarle tiempo y esfuerzo al enlazar bibliotecas con el segundo método.

Comments are closed.