- Sistema operativo: Ubuntu 18.04.4 LTS
- Núcleo: Linux 5.3.0-1018-raspi2
- Arquitectura: arm64
Estoy intentando compilar libmongoc 1.13.0 desde la fuente. Estoy construyendo esto en una Raspberry Pi 4 con Ubuntu 18.04.4. corriendo Para el contexto, mi objetivo final es construiresta biblioteca Swift, que depende deMongoSwift, que depende de libmongoc. Estoy compilando la versión 1.13.0 específicamente porque creo que la versión de libmongoc-dev instalada desde apt-get es incorrecta. Cuando intento compilar MongoSwift, aparece un montón de errores (truncados porque publicar el resultado completo activó el filtro de spam):
/home/cooper/backup/CooperKnaak/.build/checkouts/mongo-swift-driver/Sources/MongoSwift/BSON/Overwritable.swift:68:58: error: use of unresolved identifier 'bson_iter_overwrite_oid'
iter.withMutableBSONIterPointer { iterPtr in bson_iter_overwrite_oid(iterPtr, oidPtr) }
^~~~~~~~~~~~~~~~~~~~~~~
Cuando descargo la versión 1.13.0, las bson_iter_overwrite_date_time
funciones parecen estar definidas. Esta parece ser la versión de mi Mac, que construye las bibliotecas Swift correctamente.
He seguido elinstrucciones para instalar el controlador MongoDB C, pero no puedo construir. He instalado las 3 dependencias:
cmake
: versión 3.10.2-1ubuntu2.18.04.1libssl-dev
: versión 1.1.1-1ubuntu2.1~18.04.5libsasl2-dev
: 2.1.27~101-g0780600+dfsg-3ubunt
Puedo descargar exitosamente el tarball, crear el cmake-build
directorio y ejecutar cmake
. Pero correr make
falla con
[ 37%] Linking C executable common-operations
libmongoc-1.0.so.0.0.0: undefined reference to `usprep_prepare_61_swift'
libmongoc-1.0.so.0.0.0: undefined reference to `u_strFromUTF8_61_swift'
libmongoc-1.0.so.0.0.0: undefined reference to `usprep_openByType_61_swift'
libmongoc-1.0.so.0.0.0: undefined reference to `u_strToUTF8_61_swift'
libmongoc-1.0.so.0.0.0: undefined reference to `usprep_close_61_swift'
collect2: error: ld returned 1 exit status
src/libmongoc/CMakeFiles/common-operations.dir/build.make:103: recipe for target 'src/libmongoc/common-operations' failed
make[2]: *** [src/libmongoc/common-operations] Error 1
CMakeFiles/Makefile2:769: recipe for target 'src/libmongoc/CMakeFiles/common-operations.dir/all' failed
make[1]: *** [src/libmongoc/CMakeFiles/common-operations.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
Está recibiendo un montón de referencias indefinidas a cosas como usprep_prepare_61_swift
(donde imagino que la función real se llama prepare
o strFromUTF8
, pero no estoy seguro).
¿Alguien puede entender este error? Estoy perplejo. No sé si tengo la versión incorrecta del paquete, si las dependencias tienen la versión incorrecta o si es algo más.