- 운영 체제: 우분투 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
해당 기능이 이미 정의되어 있는 것 같았습니다. 이것은 내 Mac 버전인 것 같으며 Swift 라이브러리를 올바르게 빌드합니다.
나는 팔로우했다MongoDB C 드라이버 설치 지침, 하지만 빌드할 수 없습니다. 3가지 종속성을 설치했습니다.
cmake
:버전 3.10.2-1ubuntu2.18.04.1libssl-dev
:버전 1.1.1-1ubuntu2.1~18.04.5libsasl2-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
(실제 함수 이름이 prepare
or 인 것으로 생각되지만 strFromUTF8
확실하지 않습니다).
이 오류를 이해할 수 있는 사람이 있나요? 혼란스러워요. 잘못된 패키지 버전이 있는지, 종속성이 잘못된 버전인지, 아니면 다른 버전인지 알 수 없습니다.