Ubuntu22.04编译mongocxx代码遇未定义引用,求助对应依赖库
编译mongocxx代码时的ICU库未定义引用问题
环境:Ubuntu 22.04系统,Qt Creator中尝试运行类似mongocxx C++ API示例的代码,代码如下:
#include <iostream> #include <mongocxx/instance.hpp> #include <mongocxx/uri.hpp> #include <mongocxx/client.hpp> #include <mongocxx/stdx.hpp> #include <bsoncxx/json.hpp> #include <bsoncxx/builder/basic/document.hpp> int main() { using namespace std; using bsoncxx::builder::basic::kvp; using bsoncxx::builder::basic::make_array; using bsoncxx::builder::basic::make_document; mongocxx::instance instance{}; // 只需初始化一次 mongocxx::uri uri("mongodb://localhost:27017"); mongocxx::client client(uri); auto db {client["test"]}; auto collection {db["books"]}; return 0; }
CMakeLists.txt中配置如下:
target_include_directories(${PROJECT_NAME} PUBLIC /usr/include/ /usr/local/include /usr/local/include/mongocxx/v_noabi /usr/local/include/bsoncxx/v_noabi /usr/local/include/libbson-1.0 ) target_link_directories(${PROJECT_NAME} PUBLIC /usr/lib/x86_64-linux-gnu/ /usr/local/lib/ ) target_link_libraries(${PROJECT_NAME} libmongocxx.so libbsoncxx.so libmongoc-1.0.so libsasl2.so libicuuc.so libssl.so )
编译时出现以下错误:
/usr/bin/ld: warning: libicuuc.so.66, needed by /usr/local/lib/libmongoc-1.0.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: /usr/local/lib/libmongoc-1.0.so: undefined reference to `u_strFromUTF8_66' /usr/bin/ld: /usr/local/lib/libmongoc-1.0.so: undefined reference to `usprep_close_66' /usr/bin/ld: /usr/local/lib/libmongoc-1.0.so: undefined reference to `u_strToUTF8_66' /usr/bin/ld: /usr/local/lib/libmongoc-1.0.so: undefined reference to `usprep_prepare_66' /usr/bin/ld: /usr/local/lib/libmongoc-1.0.so: undefined reference to `usprep_openByType_66' collect2: error: ld returned 1 exit status
问题:这些未定义引用符号(u_strFromUTF8_66、usprep_close_66、u_strToUTF8_66、usprep_prepare_66、usprep_openByType_66)由哪个ICU相关库定义?
内容的提问来源于stack exchange,提问作者user22343737
相关产品推荐
相关产品推荐

