ustream是如何工作的?

时间:2012-11-29 05:55:53

标签: c++ unicode icu

我想让我的程序输出希腊字母。我已经安装并连接了ICU,但我无法弄清楚如何将我的Unicode字符串打印到标准输出。这是一些简单的代码:

#include <unicode/unistr.h>
#include <unicode/ustring.h>
#include <unicode/ustream.h>
#include <iostream>

int main() {
    UnicodeString mystr("αβγ");
    std::cout << mystr << std::endl;
}

使用:g++ ./ctest.cpp -licui18n -licuuc -licudata -lpthread -lm进行编译会产生以下错误:

  

ctest.cpp :(。text + 0x27):对`icu_46 :: operator&lt;&lt;(std :: basic_ostream&gt;&amp;,icu_46 :: UnicodeString const&amp;)'的未定义引用       collect2:ld返回1退出状态

对于像我这样的菜鸟来说,ICU的文档很难,ustream.h特别稀疏,我认为这是我要做的事情的关键。任何帮助将不胜感激(特别是如果有人想写一个更加用户友好的ICU指南!)。

1 个答案:

答案 0 :(得分:4)

使用-licuio标志,因为ICU的io操作在此库中。 http://userguide.icu-project.org/howtouseicu

forever@pterois:~/My_pro1/cpp_pro$ g++ -o new new.cpp -licui18n
-licuuc -licudata -licuio -lpthread -lm
forever@pterois:~/My_pro1/cpp_pro$ ./new 
αβγ