¿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.
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 utilidadpkg-config
. Luego, ejecute el siguiente comando en la terminal: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 enopencv_core
, puede agregaropencv_core
al comandotarget_link_libraries
de esta manera:Utilizar
pkg-config
puede ahorrarle tiempo y esfuerzo al enlazar bibliotecas con el segundo método.