hondah
2017年6月5日 20時08分
いつもお世話になっております。本田と申します。
cursesを利用したサンプルプログラムを動かしたいのですが、
うまくいっておりません。
ATDEでのコンパイルでは「日本語:ハンカクカナ:ASCII00」と表示されているのですが、
クロスコンパイル後、Armadillo上では「~SM-z~V{~LM-j: :ASCII00」と表示されてしまいます。
sjisのファイルのcat等は特に文字化けすることなく表示されています。
ロケールかカーシスの設定だと思うのですが、何をすれば良いのか分からず・・・。
以下コンパイル方法とサンプルプログラム
コンパイル
gcc -O -g -finput-charset=cp932 -fexec-charset=cp932 -DLINUX -D_GNU_SOURCE -I/usr/include -o sample sample.c -lncursesw
クロスコンパイル
arm-linux-gnueabi-gcc -O -g -finput-charset=cp932 -fexec-charset=cp932 -DLINUX -D_GNU_SOURCE -I/usr/arm-linux-gnueabi/include -o sample sample.c -lncursesw
サンプルプログラム
#include
#include
int main()
{
setlocale( LC_ALL, "" );
initscr();
int x = 0;
int y = 0;
for(;;){
clear();
move( y, x );
addstr( "日本語:ハンカクカナ:ASCII00" );
refresh();
switch( getch() ){
case 'q' : goto EXIT_FOR;
case 'k': --y; break;
case 'j': ++y; break;
case 'l': ++x; break;
case 'h': --x; break;
}
}
EXIT_FOR:
endwin();
return 0;
}
ATDE5 v20161130(i386)
Armadillo410(Atmark-dist 20160927,Armadllo-440)
こちらを参考にロケールを設定
https://armadillo.atmark-techno.com/forum/armadillo/2232
hondah
2017年6月12日 9時56分
ソースが不十分でしたので、添付いたします。