Ubuntu Raspberry Pi에서 Mongo C 드라이버 1.13.0 빌드

Ubuntu Raspberry Pi에서 Mongo C 드라이버 1.13.0 빌드
  • 운영 체제: 우분투 18.04.4 LTS
  • 커널: 리눅스 5.3.0-1018-raspi2
  • 아키텍처: arm64

소스에서 libmongoc 1.13.0을 빌드하려고 합니다. 저는 Ubuntu 18.04.4를 실행하는 Raspberry Pi 4에서 이것을 구축하고 있습니다. 실행 중, 내 최종 목표는 다음을 구축하는 것입니다.이 스위프트 라이브러리, 이는 다음에 따라 달라집니다.몽고스위프트, 이는 libmongoc에 따라 다릅니다. apt-get에서 설치된 libmongoc-dev 버전이 잘못되었기 때문에 특별히 버전 1.13.0을 빌드하고 있습니다. 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기능이 정의된 것 같습니다. 이것은 Swift 라이브러리를 올바르게 빌드하는 내 Mac 버전인 것 같습니다.

나는 ~을 따랐다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확실하지 않음) 과 같은 것에 대해 정의되지 않은 참조가 많이 발생합니다 .

누구든지 이 오류를 이해할 수 있습니까? 나는 당황했다. 잘못된 패키지 버전이 있는지, 종속성에 잘못된 버전이 있는지, 아니면 다른 버전이 있는지 알 수 없습니다.

관련 정보