原文链接:http://www.diybl.com/course/3_program/c++/cppjs/20090226/156182.html
最近在做CodeBlocks+wxWidgets+MinGW的开发,编译时提示wcout出错,在网上搜索了一个,发现这是MinGW的一个limitation:不支持unicode。网上提供的解决办法是用STLPort替代MinGW的STL库。按照网上提供的步骤,从SourceForge下载源代码,编译,出错。经过分析,发现网上很多文章都缺少了一些重要的步骤:安装MSYS。下面是我的编译过程:
1. 下载STLPort源代码:http://sourceforge.net/projects/stlport/。假定解压目录为C:\STLPort
2. 下载并安装CodeBlocks和MinGW或带MinGW的CodeBlocks,假定MinGW安装路径为C:\MinGW。不要忘记把C:\MinGW\bin加到Path环境变量里
3. 下载并安装MSYS:http://www.mingw.org/wiki/msys 并设置MinGW的安装路径(这篇文章讲得很清楚)
4. 打开MSYS Shell环境,cd到/c/STLPort/build/lib(在MSYS里,Windows的C:一般映射到/c),执行mingw32-make -fgcc.mak clean all install
5. mkdir C:\STLPort\lib
6. 复制C:\STLport\build\lib\obj\gcc下面3个文件夹里的*.a和*.all到C:\STLPort\lib。同时把3个dll复制到C:\Windows\system32
7. 下面是配置CodeBlocks的步骤:
(1)打开CodeBlocks菜单Settings->Compiler and Debugger->Global Compiler Setting->GCC
(2)检查并更新Toolchain executables中的MinGW安装路径(如果你用的不是CodeBlocks自带的MinGW)
(3)在Compiler setting->Other options中添加-mthreads
(4)在Linker setting中把C:\STLPort\lib里的3个*.a文件加入link libraries里,注意去年文件名前面的“lib”和后面的“.a”
(5)在Search directories->Linker里加入C:\STLPort\lib (有的文章说要在Search directories->Compiler里加入C:\STLPort\stlport,但是我在编辑wxWidgets程序时提示一些Windows头文件重复定义,去掉C:\STLPort\stlport后编译通过。哪位高人有更好的解决办法,请指教)
好了,一切准备就绪,写一个wxWidgets程序或wcout程序试试看吧!