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.

CMake FIND_PACKAGE encuentra la versión incorrecta de SQLite3 en MacOS Monterey.

Necesito utilizar una nueva versión de SQLite3 en un proyecto construido usando CMake. Para encontrar dependencias externas, usualmente utilizamos el comando FIND_PACKAGE() que suele funcionar correctamente. Sin embargo, FIND_PACKAGE(SQLite3) encuentra la versión muy antigua proporcionada por el sistema operativo en lugar de la versión actualizada proporcionada por Homebrew. Homebrew se niega a vincular sus propias cabeceras, binarios y bibliotecas. Supongo que podría hacerlo manualmente, pero dudo si Homebrew lo desaconseja de manera tan rotunda (incluso se niega cuando se le da la bandera –force).

Cualquier indicación sobre cómo controlar dónde busca CMake el SQLite3 sería muy apreciada.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para controlar dónde busca CMake el SQLite3, puedes intentar utilizar la variable CMAKE_PREFIX_PATH para especificar la ruta de la instalación deseada de SQLite3. Puedes establecer esta variable ya sea en la línea de comandos o en tu archivo CMakeLists.txt. Por ejemplo:

    # Establece la variable CMAKE_PREFIX_PATH con la ruta de instalación de SQLite3
    set(CMAKE_PREFIX_PATH "/usr/local/opt/sqlite")
    
    # Intenta encontrar la nueva instalación de SQLite3 utilizando FIND_PACKAGE
    find_package(SQLite3 REQUIRED)
    
    # Añade el directorio de inclusiones y enlace a la biblioteca de SQLite3
    include_directories(${SQLite3_INCLUDE_DIRS})
    target_link_libraries(tu_objetivo ${SQLite3_LIBRARIES})
    

    Ten en cuenta que esto asume que has instalado correctamente la versión deseada de SQLite3 utilizando Homebrew. Además, vale la pena verificar que la variable CMAKE_PREFIX_PATH no esté establecida ya en un valor conflictivo. Puedes verificar esto ejecutando cmake --help-variable CMAKE_PREFIX_PATH en tu terminal.

Comments are closed.