由小白到大大的涅盘,从vgsky.com开始!

psp开发教你如何编译iconv

Update:2007/10/6,Click:0 本文如有下载 请从下面附件中下载

举手之劳 是您对我们最大的支持 感谢您!

自从ranwanui兄弟提出iconv问题后,好像到现在就没声了,不知道是否已经解决了。;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
不过相信碰到这个问题的人一定不少,真不知道ps2dev那帮人是怎样想的,留了iconv.h却不给静态库。那只好自己动手了,小弟研究了一把,总算貌似能用了。;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
前提条件,你要有cygwin或者linux开发环境,并已经能够正确编译过freetype的lib,devkitPro暂时不行,如果是那请往下看:;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
1。下载公版的iconv。http://www.gnu.org/software/libiconv/ ;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
    目前好像是1.9.1,解开。以下假设libiconv-1.9.1就是iconv的根目录;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
2。下载svn.ps2dev.org中的freetype;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
3。取出下载下来的freetype中 freetype/builds/unix/config.sub (如果你不想下载这么大的包,也可以用浏览器直接得到config.sub);75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
4。用这个config.sub替换掉iconv里的文件,共有两处,分别在libiconv-1.9.1/autoconf里和libiconv-1.9.1/libcharset/autoconf里;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
5。下载我提供的shell: psplibiconv.sh,放在libiconv-1.9.1下,检查是否有执行权限,执行;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
6。如果没有出现ERROR RUNNING ICONV CONFIGURE,那第一步就完成了;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
7。到libiconv-1.9.1/srclib下打开error.h,第43行;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
  将#if defined (__STDC__) && __STDC__;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
    改为#if defined VA_START && __STDC__;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
    到libiconv-1.9.1/lib下打开loop_wchar.h,第107行;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
   将if (bufcount + MB_CUR_MAX &gt; BUF_SIZE);75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
    改为if (bufcount /*+ MB_CUR_MAX*/ &gt; BUF_SIZE);75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
8。在libiconv-1.9.1下执行make;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
9。make install;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
好了,应该成功了,写一个程序测试吧,别忘了在你的makefile里LIBS加一条 -liconv;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
看看标题,为什么叫凑合版呢,大家也看出来了,在第七步里我修改了程序,而这一行根据注释/* Continue, append next wchar_t, but avoid buffer overrun. */说明是用来防止溢出的;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
不过如果不取掉MB_CUR_MAX,编译就报错了。gcc我不是高手,只能请高手解决了。;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
自己测试了一把,暂时还没有问题。;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
;75>wS)]A-$Dk#}zyOYT@e*]1w?gf^L\RUX/2CJml<[y>[本文来自:V电G玩S天K空Y
。。。什么时候可以不再凑合呢???

【分类导航】

【热门游戏资讯】

更多

【推荐游戏资讯】

更多

【最新资讯更新】

更多

【赞助商链接】