代码块头文件问题
以下内容转载自/windows-Shang-Pei-zhi-code blocks-wxwidgets . html,内容有改动,未附上原图。如有必要,可前往上述地址查看。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
前提准备
编译程序
你至少应该正确安装免费的MinGW/GCC编译器或者某种微软编译器(速成版是免费的,但是你需要安装Platform SDK)。如果使用MinGW/GCC,至少要准备gcc-core、gcc-g++、binutils、w32api和mingw32-make包;同时,确保包含编译器可执行文件的目录(通常是C:\MinGW\bin)在Windows的PATH环境变量中。
提示:设置环境变量后,需要重启计算机才能生效。
如果选择MinGW/GCC编译器,可以直接选择包含MinGW的Code::Blocks安装包,如下一节所示。
最新版本的代码::块
请下载最新的8.02版本。没有选择编译器。您可以选择包含MinGW的安装包。(现在有10.05版本,可以用中国包8.02版本。去google一下中文的方法,到处都是。)
wxWidgets
可以选择下载wxWidgets的源代码自己构建,也可以直接安装预编译的wxPack。
WxWidgets源代码
安装包比较小,可以根据自己的需求定制,但是编译时间比较长。如果您不知道编译选项,您可能无法成功配置Code::Blocks。
目前推荐的wxWidgets版本是2.8.11。也可以查看wxWidgets的下载页面,看看有没有更新的稳定版可以下载。强烈建议您将代码安装在不带空格的路径中。磁盘中必须至少有300MB的可用空间。
wxPack
虽然安装包是200MB,而且整个安装需要3G,但是里面包含了所有可能用到的预编译库文件,包含了VC和GCC两个版本,不用考虑构造选项。
wxPack目前的稳定发布版本是v2.8.7.03,基于wxWidgets 2.8.7。点击此处下载wx pack v 2 . 8 . 7 . 03(wx pack _ v2.8.7.03.exe,236.9mb)。也可以查看wxPack下载页面,看看有没有更新的稳定版可以下载。强烈建议将wxPack安装在没有空格的路径中。如果只选择MSVC版,要保证至少有700MB的剩余空间;如果仅选择MinGW/GCC版本,则应保证至少2.2GB的剩余空间。
指出
如果磁盘使用NTFS格式,可以开启文件压缩功能,上述目录压缩后可以减少50%的空间占用。
编译wxWidgets
您可以使用wxPack跳过这一步。
打开命令行(在开始菜单中点击“运行”,输入cmd,然后回车)。如果使用MSVC,可以使用特定的命令行来设置环境变量。如果您使用的MSVC版本也要求您单独下载Platform SDK,请确保包含Platform SDK中要使用的所有标准编译工具和环境变量。
转到wxWidgets的构建目录,这里是源代码的路径,通常是C:\wxWidgets-2.8.7:
Cd \build\msw执行build命令,MinGW/GCC推荐的命令是:
mingw 32-make-f makefile . gcc build = release shared = 1 singular = 1 unicode = 1 msvc推荐的构建命令是:
nmake-fmakefile . VC build = release shared = 1 Monolithic = 1 Unicode = 1这个过程需要很长时间,快的机器大概30分钟就能完成,慢的机器可能要几个小时。
如果使用GCC的较新版本,在构建过程中可能会有很多警告。这显然会减慢建设进程;您可以将错误消息重定向到一个文件,并在上述命令后添加2>。Err.log,或者通过2 >;Nul直接禁止警告消息。
关于BUILD、SHARED、MONOLITHIC和UNICODE选项的解释,请仔细参考文章后面关于wxWidgets的构建参数的解释。这些参数非常关键,它们直接定义了您使用的基本wxWidgets开发环境。必须严格按照编译参数设置Code::Blocks的配置向导。
在代码::块中创建wxWidgets项目。
在Code::Blocks的起始页中选择“创建新项目”,或者在文件菜单中选择“新建”->。“项目…”
找到并选择“wxWidgets项目”并创建它。然后会出现一个向导来帮助您配置wxWidgets项目:
第一页是介绍,后面可以选择跳过。
选择您想要使用的wxWidgets版本。如果您遵循本文中的步骤,那么您应该选择“wxWidgets 2.8.x”。
设置项目名称的位置。
输入作者的信息(可选)
选择自动生成代码和文件的选项。
选择wxWidgets的位置。这里强烈建议使用全局变量:输入“$(#wx)”(不带引号)。如果尚未定义此全局变量,将会出现“全局变量”对话框。在基本路径中,选择wxWidgets的安装路径。其他路径可以留空。
选择项目的调试/发布配置。建议至少选择调试配置。
选择您的wxWidgets构建选项。必须和你构建wxWidgets时使用的选项一致!如果您按照本文之前的方式构建它,您应该检查“wxWidgets库设置”下的所有三个选项。如果使用wxPack,因为wxPack包含各种版本,所以只需要选择需要的选项即可。这个页面的另一个设置与wxWidgets的构建选项无关。你可以根据自己的喜好来选择。如果出于某种原因,您想要使用WxWidgets的调试版本进行构建,请选择“配置高级选项”,然后在下一页选择“使用_ _ WxDebug _ _和调试wxWidgets库”。
如有必要,选择其他库。对于一般应用程序,您应该不需要选择其中任何一个。
构建并运行程序
接下来,您可以选择“构建并运行”(F9)来构建并运行程序。如果进展顺利,您的wxWidgets应用程序将会出现。有问题可以参考后面的常见问题。
wxWidgets编译选项介绍
建设
构建控件wxWidgets来构建调试版本(BUILD=debug)或发布版本(BUILD=release)。在大多数情况下,你只需要wxWidgets的发布版本,因为你不想调试wxWidgets本身,你仍然可以通过链接wxWidgets的发布版本来构建自己程序的调试版本。
调试和构建wxWidgets会创建带“d”后缀的库,如“libwxmsw28d.a”和“wxmsw28d_gcc_custom.dll”。
调试和构建wxWidgets将在wxWidgets库的输出目录中创建一个“mswd”或“mswud”目录。
发布build wxWidgets创建的库没有“d”后缀,比如“libwxmsw28.a”和“wxmsw28_gcc_custom.dll”。
发布和构建wxWidgets将在wxWidgets库的输出目录中创建一个“msw”或“mswu”目录。
共享的
SHARED控制wxWidgets是构建DLL(SHARED=1)还是静态库(SHARED=0)。使用构建的DLL,可以更快地构建主程序,并且可执行文件更小。但是,可执行文件加上wxWidgets DLL的总大小更大,但是不同的可执行文件可以使用同一个DLL。
wxWidgets的DLL构造会创建导入库(如libwxmsw28.a)和DLL文件(如wxmssw28 _ gcc _ custom.dll)。发布程序时必须包含此DLL。
wxWidgets的静态构造只会创建静态库(如libwxmsw28.a),发布时不一定要包含wxWidgets的DLL。
整体的
MONOLITHIC控制是构建单个库(MONOLITHIC=1)还是多个组件库(MONOLITHIC=0)。使用单一构建,项目的设置和开发将会更加容易。如果同时使用DLL构建,只需要分发一个DLL文件。如果您使用multilib,您将构建许多不同的库,并且您可以避免将整个wxWidgets的基本代码链接到主程序,因此您可以去掉不必要的库。同时,您还必须确保选择了正确的组件库。
wxWidgets的单个构建只会创建一个wxWidgets导入库(如libwxmsw28.a)和一个DLL(如wxmsw28_gcc_custom.dll)。
wxWidgets的多库构造会创建多个导入库(libwx28_base.a等。)和多个DLL文件。
无论构建什么样的wxWidgets,额外的静态库(如libwxexpat.a、libwxjpeg.a等。)将被创建。对于wxWidgets的DLL构造,这些库通常是不必要的,但是当使用静态构造时,它们是必要的。
采用双字节对字符进行编码
Unicode控制wxWidgets以及您的程序是否使用支持UNICODE的宽字符串。Windows 2000或更高版本系统上的大多数应用程序应该支持Unicode。早期版本的Windows可能不支持Unicode。您应该始终使用wxWidgets的_(“string”)和_ T(“string”)宏来确保硬编码的字符串在编译时是正确的类型。
wxWidgets的Unicode(UNICODE=1)构造会创建带“u”后缀的库,比如“libwxmsw28u.a”和“wxmsw28u_gcc_custom.dll”。
wxWidgets的Unicode构造会在wxWidgets库的输出目录中创建“mswu”或“mswud”目录。
wxWidgets的ANSI(UNICODE=0)构造创建的库没有“u”后缀,比如“libwxmsw28.a”和“wxmssw28 _ gcc _ custom.dll”。
wxWidgets的ANSI版本将在wxWidgets库的输出目录中创建一个“msw”或“mswd”目录。
常见问题
出现类似“wx/setup.h:没有这样的文件或目录”的错误。
您在构建选项中遗漏了一个非常重要的编译器搜索路径。首先,确保在运行wxWidgets项目向导时正确选择了wxWidgets的构建配置。如果重新运行向导,配置仍然不起作用,请打开项目的build选项,将“$(#wx.lib)\gcc_dll\mswu”(假设这里只有一个Unicode DLL版本)添加到编译后的搜索路径中。
出现类似“找不到-lwxmsw28u”的错误。
构建选项中的链接库是错误的。首先,确保在运行wxWidgets项目向导时正确选择了wxWidgets的构建配置。如果重新运行向导,配置仍然不起作用,请确定您构建了什么库,并相应地调整构建选项中的库名称。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如果要构建一个可以显示中文的程序,要设置codeblocks,在编辑菜单中选择UTF-8作为文件编码,否则编译时会出错。