在 Ubuntu Raspberry Pi 上建置 Mongo C 驅動程式 1.13.0

在 Ubuntu Raspberry Pi 上建置 Mongo C 驅動程式 1.13.0
  • 作業系統:Ubuntu 18.04.4 LTS
  • 內核:Linux 5.3.0-1018-raspi2
  • 架構:arm64

我正在嘗試從原始程式碼建立 libmongoc 1.13.0。我正在運行 Ubuntu 18.04.4 的 Raspberry Pi 4 上建置它。對於上下文來說,我的最終目標是構建這個 Swift 函式庫,這取決於蒙戈斯威夫特,這取決於 libmongoc。我專門建立了 1.13.0 版本,因為我認為從 apt-get 安裝的 libmongoc-dev 版本是錯誤的。當我嘗試編譯 MongoSwift 時,出現一堆錯誤(由於發布完整輸出觸發了垃圾郵件過濾器而被截斷):

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

當我下載1.13.0版本時,bson_iter_overwrite_date_time功能似乎已經定義好了。這似乎是我的 Mac 上的版本,它確實正確建立了 Swift 庫。

我已經按照安裝 MongoDB C 驅動程式的說明,但我無法構建。我已經安裝了 3 個依賴項:

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

我可以成功下載 tarball、建立cmake-build目錄並運行cmake.但運行make失敗

[ 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

它得到了一堆未定義的引用,例如usprep_prepare_61_swift(我想像實際的函數被命名為prepareor strFromUTF8,但我不確定)。

任何人都可以理解這個錯誤嗎?我很困惑。我不知道我的套件版本是否錯誤,依賴項是否版本錯誤,或者是否是其他原因。

相關內容