gpt4 book ai didi

c++ - 对 boost::locale:conv::between 的 undefined reference

转载 作者:行者123 更新时间:2023-12-03 14:36:50 31 4
gpt4 key购买 nike

我正在尝试遵循 my previous question 的答案并使用 boost::locale::conv::betweenvector<char> 获取 UTF-8 字符串包含 UTF-16 数据。我的代码与答案非常相似(在获取 char * 的方式上存在一些差异:

char in[length + 1];
//... populate in with my source data
in[length] = '\0';
std::string out = boost::locale::conv::between((const char*)in, std::string("UTF-8"), std::string("UTF-16"));

这编译得很好,但在链接期间我收到错误
In function `boost::locale::conv::between(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::locale::conv::method_type)':
/usr/local/include/boost/locale/encoding.hpp:186: undefined reference to `boost::locale::conv::between(char const*, char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::locale::conv::method_type)'

这在我看来不太合适。我能想到的可能性是我安装了 boost 1.50,所以我安装了最新的 1.55 版本 - 但我得到了同样的错误。

最佳答案

Boost locale 不是一个只有头文件的库,它有一个你需要链接的实际库。
将以下标志添加到 LDFLAGS 有帮助:

-lboost_locale

关于c++ - 对 boost::locale:conv::between 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21750547/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com