我试图按照我之前的问题的答案,并使用boost::locale::conv::between从vector<char>包含UTF-16数据的UTF-8字符串.我的代码与答案非常相似(在获得以下方面存在一些差异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"));
Run Code Online (Sandbox Code Playgroud)
这编译很好,但在链接期间我得到错误
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)'
Run Code Online (Sandbox Code Playgroud)
这对我来说不合适.我可以想到的可能性是我安装了1.50升级,所以我安装了最新的1.55版本 - 但我得到了同样的错误.
Boost语言环境不是仅限标题的库,它具有您需要链接的实际库.将以下标志添加到LDFLAGS有助于:
-lboost_locale
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3768 次 |
| 最近记录: |