我想让我的程序输出希腊字母。我已经安装并连接了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指南!)。
答案 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
αβγ