Windows平台使用CodeBlocks和Wxwidgets搭建C++开发环境

对于Code::Blocks和wxWidgets本文就不多做介绍了,每个程序员心中都有一杆秤,其显赫的名声早已对其做了最好的诠释。本文将重点放在环境的搭建上,下面切入正题。


一、安装前准备
1、下载Code::Blocks,官网地址:http://www.codeblocks.org/,下载纯Code::Blocks,不要自带编译器的,文件名为codeblocks-10.05-setup.exe。然后去论坛里下载最新的每日构建。
2、下载MinGW编译器,推荐下载TDM-GCC,官网地址为:http://tdm-gcc.tdragon.net/,推荐下载4.5.2版本的。
3、下载wxWidgets,官网地址为:http://www.wxwidgets.org/,推荐下载zip压缩包。


二、安装步骤
1、安装Code::Blocks,安装目录不要带中文和空格,例如:"C:\CodeBlocks"。
2、将下载的每日构建解压到目录"C:\CodeBlocks"下,至此,Code::Blocks变成了最新版本。
3、安装MinGW编译器到"C:\CodeBlocks\MinGW32"路径下。
4、解压wxWidgets到"C:\CodeBlocks\wxWidgets-2.9.2"路径下。
5、在DOS窗口下切换到路径"C:\CodeBlocks\wxWidgets-2.9.2\build\msw"下,执行如下命令:

mingw32-make -f makefile.gcc clean
mingw32-make -f makefile.gcc BUILD=debug SHARED=1 MONOLITHIC=1 UNICODE=1 2> err.log
mingw32-make -f makefile.gcc BUILD=debug SHARED=0 MONOLITHIC=1 UNICODE=1 2> err.log
mingw32-make -f makefile.gcc BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=1 2> err.log
mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=1 UNICODE=1 2> err.log

 另外,如果用VC编译器,推荐使用如下命令:

nmake -f makefile.vc clean
nmake -f makefile.vc BUILD=debug SHARED=1 MONOLITHIC=1 UNICODE=1 2> err.log
nmake -f makefile.vc BUILD=debug SHARED=0 MONOLITHIC=1 UNICODE=1 2> err.log
nmake -f makefile.vc BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=1 2> err.log
nmake -f makefile.vc BUILD=release SHARED=0 MONOLITHIC=1 UNICODE=1 2> err.log

 

三、配置环境
1、修改源文件保存编码,打开Setting->Editor->Other setting页面,编码使用WINDOWS-936,并设置成默认。
2、修改编译器对源文件解释编码格式和生成执行文件执行时候采用的编码格式,打开Setting->Compiler and debugger settings,选择"GUN GCC Compiler"编译器,然后Compiler settings->Other options,在里面填写:

-finput-charset=GBK
-fexec-charset=GBK

 

第一个参数表示编译的时候输入文件的编码解释格式,第二参数表示生成的执行文件执行的时候显示用的编码格式。

3、设置全局变量,打开Settings->Global Variable Editor,在"Current Variable"右侧点击"New",输入"wx",确定。base里选择"C:\CodeBlocks\wxWidgets-2.9.2"。

4、设置编译器与调试器,打开Setting->Compiler and debugger settings->Search directories,在Linker中输入"$(#wx)\lib\gcc_dll"和"$(#wx)\lib\gcc_lib",在Resoure compiler里输入"$(#wx)\src"。

 

四、wxWidgets编译选项简介
BUILD
BUILD控制wxWidgets构建调试版本(BUILD=debug)或者是发布版本(BUILD=release)。绝大多数情况下你只需要wxWidgets的发布版本就可以了,因为你应该不想要去调试wxWidgets自身,同时你依然可以通过链接wxWidgets的发布版本来构建你自己的程序的调试版本。
(1)调试构建wxWidgets会创建带有”d”后缀的库,例如”libwxmsw28d.a”、”wxmsw28d_gcc_custom.dll”。
(2)调试构建wxWidgets会在wxWidgets库的输出目录中创建”mswd” 或者 “mswud” 目录。
(3)发布构建wxWidgets创建的库没有”d”后缀,例如”libwxmsw28.a”、”wxmsw28_gcc_custom.dll”。
(4)发布构建wxWidgets会在wxWidgets库的输出目录中创建”msw” 或者 “mswu” 目录。
SHARED
SHARED控制wxWidgets是构建DLL(SHARED=1)还是静态库(SHARED=0)。利用构建的DLL,主程序构建时间较快,可执行文件更小。但是可执行文件加上wxWidgets DLL的总大小更大,但是不同的可执行文件可以使用同一个DLL。
(1)wxWidgets的DLL构建会创建导入库(如 libwxmsw28.a)以及DLL文件(如wxmsw28_gcc_custom.dll)。你必须在发布你的程序的时候包含这个DLL。
(2)wxWidgets的静态构建只会创建静态库(如 libwxmsw28.a),发布的时候也无须包含wxWidgets的DLL。
MONOLITHIC
MONOLITHIC控制是构建一个单一的库(MONOLITHIC=1)还是多个组件库(MONOLITHIC=0)。使用单一构建,项目的设置和开发会更加简单,如果你同时使用DLL构建的话,你只需要分发一个DLL文件。如果使用非单一构建(multilib),会构建出多个不同的库同时你可以避免将整个wxWidgets的基本代码链接到主程序,就可以去掉不需要的库。同时你也必须确保你选择了正确的组件库。
(1)wxWidgets的单一构建仅会创建一个wxWidgets导入库(如libwxmsw28.a)以及一个DLL(如wxmsw28_gcc_custom.dll)。
(2)wxWidgets的多库(multilib)构建会创建多个导入库(libwx28_base.a等)以及多个DLL文件。
(3)无论何种wxWidgets构建,都会创建额外的静态库(如libwxexpat.a、libwxjpeg.a等)。这些库对于wxWidgets的DLL构建一般是不需要的,但是当使用静态构建的时候,则是必须的。
UNICODE
UNICODE控制wxWidgets以及你的程序是否使用支持Unicode的宽字符串。大多数Windows 2000或更高系统上的应用程序都应该支持Unicode。早期的Windows版本不一定有Unicode支持。你应该总是使用wxWidgets的_("string")和_T("string")宏来确保硬编码的字符串编译时是正确的类型。
(1)wxWidgets的Unicode(UNICODE=1)构建将会创建带有”u”后缀的库,例如”libwxmsw28u.a”、”wxmsw28u_gcc_custom.dll”。
(2)wxWidgets的Unicode构建会在wxWidgets库的输出目录中创建”mswu”或”mswud”目录。
(3)wxWidgets的ANSI(UNICODE=0)构建创建的库没有”u”后缀,例如”libwxmsw28.a”、”wxmsw28_gcc_custom.dll”。
(4)wxWidgets的ANSI构建会在wxWidgets库的输出目录中创建”msw”或”mswd”目录。


五、常见问题
1、出现类似于”wx/setup.h: No such file or directory”的错误
你在构建选项中缺少了很重要的编译器搜索路径。首先确认你是否在运行wxWidgets项目向导的时候正确选择了wxWidgets的构建配置。如果重新运行向导并配置依然无效,那么打开你的项目的构建选项并给编译起的搜索路径中添加”$(#wx.lib)\gcc_dll\mswu“(这里假设是一个单一的Unicode DLL构建)。
2、出现类似于”cannot find -lwxmsw28u”的错误
构建选项中的链接库错了。首先确认你是否在运行wxWidgets项目向导的时候正确选择了wxWidgets的构建配置。如果重新运行向导并配置依然无效,确定你构建了什么库,并相应在构建选项中调整库的名字。

你可能感兴趣的:(C++)