Erstellen Sie den Mongo C-Treiber 1.13.0 auf Ubuntu Raspberry Pi

Erstellen Sie den Mongo C-Treiber 1.13.0 auf Ubuntu Raspberry Pi
  • Betriebssystem: Ubuntu 18.04.4 LTS
  • Kernel: Linux 5.3.0-1018-raspi2
  • Architektur: arm64

Ich versuche, libmongoc 1.13.0 aus dem Quellcode zu erstellen. Ich baue dies auf einem Raspberry Pi 4 mit Ubuntu 18.04.4. Zum Kontext: Mein endgültiges Ziel ist es,diese Swift-Bibliothek, die davon abhängtMongoSwift, das von libmongoc abhängt. Ich baue Version 1.13.0 speziell, weil ich glaube, dass die von apt-get installierte Version von libmongoc-dev falsch ist. Wenn ich versuche, MongoSwift zu kompilieren, erhalte ich eine Reihe von Fehlern (abgeschnitten, weil das Posten der vollständigen Ausgabe den Spamfilter ausgelöst hat):

/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) }
                                                         ^~~~~~~~~~~~~~~~~~~~~~~

Wenn ich die Version 1.13.0 herunterlade, bson_iter_overwrite_date_timescheinen die Funktionen definiert zu sein. Dies scheint die Version auf meinem Mac zu sein, die die Swift-Bibliotheken korrekt erstellt.

Ich bin gefolgt vonAnweisungen zur Installation des MongoDB C-Treibers, aber ich kann es nicht erstellen. Ich habe die 3 Abhängigkeiten installiert:

  • cmake: Version 3.10.2-1ubuntu2.18.04.1
  • libssl-dev: Version 1.1.1-1ubuntu2.1~18.04.5
  • libsasl2-dev: 2.1.27~101-g0780600+dfsg-3ubunt

Ich kann das Tarball erfolgreich herunterladen, das cmake-buildVerzeichnis erstellen und ausführen cmake. Aber das Ausführen makeschlägt fehl mit

[ 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

Es erhält eine Reihe undefinierter Referenzen auf Dinge wie usprep_prepare_61_swift(wobei ich mir vorstelle, dass die eigentliche Funktion benannt ist prepareoder strFromUTF8, aber ich bin nicht sicher).

Kann irgendjemand diesen Fehler erklären? Ich bin ratlos. Ich weiß nicht, ob ich die falsche Paketversion habe, ob die Abhängigkeiten die falsche Version haben oder ob es etwas anderes ist.

verwandte Informationen