wxWindows 程序编译选项设置统揽
2005-04-01 01:54
399 查看
看看丝路花雨的[推荐] VC++预处理定义中的WINVER= 0x400, STRICT是干吗的
A tutorial for wxWindows 2 在这一页有ZIP和PDF教程文档下载
教程和资源: http://www.bzzt.net/~wxwidgets/icpp_wx1.html
首先,得确保你的wxWindows 已经安装好了,并且把你的wxWindows编译出了相应的lib和dll文件.
然后,把你的wxWindows安装目录添加到环境变量中去,以便于VC查找头文件和链接库和以及dll.
比如你的安装目录是C:/Program Files/wxWindows242,就在环境变量中添加一个变量: WXWIN=C:/Program Files/wxWindows242
在XP中是这样设置的:
我的电脑>>属性>>高级选项卡>>环境变量,然后在用户变量中新建一个变量,
变量名: WXWIN
变量值: C:/Program Files/wxWindows242
接着,在VC中包含头文件和库文件的路径
Tools>>Options>>Directories选项卡,
Show Directories for选Include files,然后在Directories一栏添加目录C:/Program Files/wxWindows242/include
Show Directories for选Library files,然后在Directories一栏添加目录C:/Program Files/wxWindows242/lib
--------------------
当然,你如果愿意在
Show Directories for选Source files,然后在Directories一栏添加目录C:/Program Files/wxWindows242/src
也是可以的.
接着,对于每一个新建的Project,按照你需要编译发行的版本来进行VC中的设置Project>>Settings.(或者按Alt+ F7)
注意,由于我们使用wxWindows,所以,不需要使用MFC,因此,下面的设置中,无论是你想发行哪个版本,在工程设置对话框中(Project Settings),General 选项卡中,都选择Not Using MFC.
如果你想使用wxWIndows和MFC混合编程,我在另外的文章中再详细叙述.
下面根据网上文章和wxWindows给的实际例子(以官方例子为准),以及我个人的编译实践,介绍一下需要添加的编译配置--这个说的是你做好了上面的说的设置环境变量(下面就要用的),包含头文件和库文件路径的事情,然后使用AppWizard在除了wxWindows安装目录的Samples目录之外的目录(比如E:/ Test 下)添加了一个Win32 Application,建立一个空的工程(Empty Project),添加了一个main.cpp(文件名随你自己定了)之后,进行的设置(Settings).
注:如果你在wxWindows安装目录下面的Samples目录下建立了一个工程,那么,你按照官方例子(Samples目录下的例子)进行设置就一定行的,我试过,Ctrl+C,Ctrl+V,OK.
编译版本目录
发行版本
Debug
Debug Unicode
Debug DLL
Debug Unicode DLL
Release
Release Unicode
Release DLL
Release Unicode DLL
编译调试Debug版(Win32 Debug)<<请认真阅读,这个写的也比较详细,其他的编译版本与这个很类似
General选项卡
默认吧^_^
C/C++选项卡
分类(Category)下拉框中选定General, 在PreProcessor difinitions 中添加: WIN32,_DEBUG,_WINDOWS,WINVER=0x400,_MT,wxUSE_GUI=1,__WXDEBUG__,WXDEBUG=1
分类下拉框中选定PreProcessor, 在Additional include directories 中添加:
$(WXWIN)/lib/mswd
注,因为你编译的是Debug版本,并且不使用DLL,而Debug版的必须包含debug版的setup.h,它位于$(WXWIN)/lib/ mswd 目录下的wx/setup.h,虽然在这个wx子目录下面,但是包含到mswd目录就可以了.
$(WXWIN)是指前面在用户环境变量中注册的变量,在我这里是代表C:/Program Files/wxWindows242目录.使用它,主要是减少输入量,每次输入C:/Program Files/wxWindows242多累啊,这个在后面的配置中就不敷述了.
注意:
这个setup.h 在每种发行版本中都是不一样的(主要是里面有些配置开关不一样,当然具体是不是这样的,我没有看每一个setup.h),分别处于不同的目录,如下表
分类下拉框中选定PreCompiled Headers, 选择Not using precompiled headers 或者 Automatic use of precompiled headers (推荐,毕竟VC的IDE支持预编译头文件).
至于Use precompiled header file(.pch) ,through header: $(WXWIN)/include/wx/wx.h,我倒没有试过,大家可以自己试试,我自己用的是Automatic use of precompiled headers.
另外,有的外国网站上说千万不要使用Create precompiled header file(.pch)这个选项,因为可能造成windows的崩溃(Crash),我试过那么一次,觉得好像没有那么严重.
分类下拉框中选定Code Generation , 在Use run-time library 中选择Debug Multithreaded DLL (调试版Debug用的,发行版Release用Multithreaded DLL,至于为什么要选 (Debug)Multithreaded DLL,是因为wxWindows 是使用Multithreaded DLL编译的)
Link选项卡
分类下拉框中选定General,Object/library modules 中原有的lib是
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib,
我们需要添加的是 comctl32.lib rpcrt4.lib wsock32.lib wxmswd.lib,对于最后一个wxmswd.lib,有下表说明
另外,如果你需要处理图像,可以再添加pngd.lib jpegd.lib tiffd.lib (这些是调试版的,调试版的lib有XXXd.lib的形式,发行版Release的用的是XXX.lib),如果你想使用正则表达式, 添加regexd.lib,使用zip功能,添加zlibd.lib.
处理图像,注意参看sample目录下的image例子.
还有一个比较重要而且比较先进的是,如果你使用wxWindows的专用XML资源文件(.xrc文件)你还必须包含wxxrc.lib(这个库,你要另外编译src目录下的相关工程),这些在后面的配置中就不敷述了.
分类下拉框中选定Input,在Ignore libraries 中添加libcd.lib
Resources选项卡
在 Additional resource include directories 中添加$(WXWIN)/include ,注意这一步不是必须的,可以不用设置.
但是当你需要使用wxWindows特定格式的XML格式的资源文件(rc)的时候,应该注意把$(WXWIN) /contrib/include目录包含进来
编译发行版(Win32 Release)
General选项卡
默认吧^_^
C/C++选项卡
分类下拉框中选定General, 在PreProcessor difinitions 中添加: NDEBUG,WIN32,_WINDOWS,WINVER=0x400,_MT,wxUSE_GUI=1
分类下拉框中选定PreProcessor, 在Additional include directories 中添加:
$(WXWIN)/lib/msw
注,因为你编译的是Release版本,并且不使用DLL,而Release版的必须包含Release版的setup.h,它位于$(WXWIN)/ lib/ msw 目录下的wx/setup.h,虽然在这个wx子目录下面,但是包含到msw目录就可以了.
分类下拉框中选定PreCompiled Headers, 选择Not using precompiled headers 或者 Automatic use of precompiled headers (推荐).
分类下拉框中选定Code Generation , 在Use run-time library 中选择Multithreaded DLL(Release版用这个).
Link选项卡
分类下拉框中选定General,Object/library modules 中原有的lib是
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib,
我们需要添加的是 comctl32.lib rpcrt4.lib wsock32.lib wxmsw.lib,对于最后一个wxmsw.lib,在上面有说明
另外,如果你需要处理图像,可以再添加png.lib jpeg.lib tiff.lib (这些是发行版Release用的),如果你想使用正则表达式, 添加reged.lib,使用zip功能,添加zlid.lib
还有一个比较重要而且比较先进的是,如果你使用wxWindows的专用XML资源文件(.xrc文件)你还必须包含wxxrc.lib(这个库,你要另外编译src目录下的相关工程),这些在后面的配置中就不敷述了.
分类下拉框中选定Input,在Ignore libraries 中添加libc.lib,注意和Debug版本比较一下,debug忽略的是libcd.lib
Resources选项卡
在 Additional resource include directories 中添加$(WXWIN)/include ,注意这一步不是必须的,可以不用设置.
但是当你需要使用wxWindows特定格式的XML格式的资源文件(rc)的时候,应该注意把$(WXWIN) /contrib/include目录包含进来
编译发行Release DLL版(Win32 Release DLL)
首先你的确保你把 wxmsw24ud.dll wxmsw24.dll wxmsw24u.dll wxmsw24d.dll这几个文件(在lib目录下)复制到你的Windows/System32/目录下去,免得程序运行的时候,弹出找不到 XXX.dll的错误.
另外这里说一点闲话,对比MFC的dll(比如MFC42.dll),这几个dll的大小是它的几倍,MFC42.dll只有900多KB,而上面这几个 dll,都是2~4MB
你可能还不知道怎么编译Win32 Release DLL版本,因为编译器默认的只有Win32 Debug 版和Win32 Release 版.这里告诉你步骤: Build>>Config>>弹出configurations对话框>>单击Add按钮>>弹出 Add Project configuration对话框>>在Configuration中输入 Release DLL>>在Copy Settings From中选择XXX-Win32 Release(你如果是Win32 Debug DLL,就从XXX-Win32 Debug复制配置)>>单击OK,成功!
General选项卡
默认吧^_^
C/C++选项卡
分类下拉框中选定General, 在PreProcessor difinitions 中添加: NDEBUG,WIN32,_WINDOWS,WINVER=0x400,_MT,wxUSE_GUI=1,WXUSINGDLL=1
分类下拉框中选定PreProcessor, 在Additional include directories 中添加:
$(WXWIN)/lib/mswdll
注,因为你编译的是Release版本,并且使用了DLL,而Release DLL版的必须包含Release DLL版的setup.h,它位于$(WXWIN)/ lib/ mswdll 目录下的wx/setup.h,虽然在这个wx子目录下面,但是包含到mswdll目录就可以了.
分类下拉框中选定PreCompiled Headers, 选择Not using precompiled headers 或者 Automatic use of precompiled headers (推荐).
分类下拉框中选定Code Generation , 在Use run-time library 中选择Multithreaded DLL(Release版用这个).
Link选项卡
分类下拉框中选定General,Object/library modules 中原有的lib是
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib,
我们需要添加的是 comctl32.lib rpcrt4.lib wsock32.lib wxmsw24.lib ,对于最后一个wxmsw24.lib ,在上面有说明
分类下拉框中选定Input,在Ignore libraries 中添加libc.lib,注意和Debug版本比较一下,debug忽略的是libcd.lib
Resources选项卡
在 Additional resource include directories 中添加$(WXWIN)/include ,注意这一步不是必须的,可以不用设置.
但是当你需要使用wxWindows特定格式的XML格式的资源文件(rc)的时候,应该注意把$(WXWIN) /contrib/include目录包含进来
编译调试Debug DLL版(Win32 Debug DLL) 和上面的类似,NDEBUG改为_DEBUG,相应的改动包含的lib文件. 编译发行Release Unicode版(Win32 Release Unicode)
General选项卡
默认吧^_^
C/C++选项卡
分类下拉框中选定General, 在PreProcessor difinitions 中添加: NDEBUG,WIN32,_WINDOWS,WINVER=0x400,_MT,wxUSE_GUI=1,_UNICOEDE,UNICODE
分类下拉框中选定PreProcessor, 在Additional include directories 中添加:
$(WXWIN)/lib/mswu
注,因为你编译的是Release Unicode版本,并且不使用DLL,而Release版的必须包含Release版的setup.h,它位于$(WXWIN)/ lib/ mswu目录下的wx/setup.h,虽然在这个wx子目录下面,但是包含到mswu目录就可以了.
分类下拉框中选定PreCompiled Headers, 选择Not using precompiled headers 或者 Automatic use of precompiled headers (推荐).
分类下拉框中选定Code Generation , 在Use run-time library 中选择Multithreaded DLL(Release版用这个).
Link选项卡
分类下拉框中选定General, Object/library modules 中原有的lib是
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib,
我们需要添加的是 comctl32.lib rpcrt4.lib wsock32.lib wxmswu.lib,对于最后一个wxmswu.lib,在上面有说明
分类下拉框中选定Input,在Ignore libraries 中添加libc.lib,注意和Debug版本比较一下,debug忽略的是libcd.lib
Resources选项卡
在 Additional resource include directories 中添加$(WXWIN)/include ,注意这一步不是必须的,可以不用设置.
但是当你需要使用wxWindows特定格式的XML格式的资源文件(rc)的时候,应该注意把$(WXWIN) /contrib/include目录包含进来
编译调试Debug Unicode版(Win32 Debug Unicode) 和上面的类似,NDEBUG改为_DEBUG,相应的改动包含的lib文件. 编译发行Release Unicode DLL版(Win32 Release Unicode DLL)
General选项卡
默认吧^_^
C/C++选项卡
分类下拉框中选定General, 在PreProcessor difinitions 中添加: NDEBUG,WIN32,_WINDOWS,WINVER=0x400,_MT,wxUSE_GUI=1,WXUSINGDLL=1,_UNICOEDE,UNICODE,
分类下拉框中选定PreProcessor, 在Additional include directories 中添加:
$(WXWIN)/lib/mswdllu
注,因为你编译的是Release Unicode版本,并且使用DLL,而Release Unicode版的必须包含Release Unicode版的setup.h,它位于$(WXWIN)/ lib/ mswdllu 目录下的wx/setup.h,虽然在这个wx子目录下面,但是包含到mswdllu 目录就可以了.
分类下拉框中选定PreCompiled Headers, 选择Not using precompiled headers 或者 Automatic use of precompiled headers (推荐).
分类下拉框中选定Code Generation , 在Use run-time library 中选择Multithreaded DLL(Release版用这个).
Link选项卡
分类下拉框中选定General,Object/library modules 中原有的lib是
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib,
我们需要添加的是 comctl32.lib rpcrt4.lib wsock32.lib wxmsw.lib,对于最后一个wxmsw.lib,在上面有说明
另外,如果你需要处理图像,可以再添加png.lib jpeg.lib tiff.lib (这些是发行版Release用的),如果你想使用正则表达式, 添加reged.lib,使用zip功能,添加zlid.lib
还有一个比较重要而且比较先进的是,如果你使用wxWindows的专用XML资源文件(.xrc文件)你还必须包含wxxrc.lib(这个库,你要另外编译src目录下的相关工程),这些在后面的配置中就不敷述了.
分类下拉框中选定Input,在Ignore libraries 中添加libc.lib,注意和Debug版本比较一下,debug忽略的是libcd.lib
Resources选项卡
在 Additional resource include directories 中添加$(WXWIN)/include ,注意这一步不是必须的,可以不用设置.
但是当你需要使用wxWindows特定格式的XML格式的资源文件(rc)的时候,应该注意把$(WXWIN) /contrib/include目录包含进来
编译调试Debug Unicode DLL版(Win32 Debug Unicode DLL) 和上面的类似,NDEBUG改为_DEBUG,相应的改动包含的lib文件. 不过这里还要强调一点的是,所有的Unicode版的,加入 _UNICODE 和 UNICODE 我没有试过,如果谁试过就给我指出错误来,在此谢过.
有一点参考资料写在最上面了.
结语: 祝大家好运,鸡年大吉!
huyoo于2005年4月1日,好像是愚人节咯~
联系我,请发邮件至 huyoo353{at}126{dot}com
A tutorial for wxWindows 2 在这一页有ZIP和PDF教程文档下载
教程和资源: http://www.bzzt.net/~wxwidgets/icpp_wx1.html
wyoGuide http://wyoguide.sourceforge.net/
http://sourceforge.net/projects/wxwindows Jabber Clients Development Team http://www.cllrnet.ca/~ahmed1980/wxwindows/wxwindows.htm 在这个站点上的一个比较好的简洁的安装教程(For VC)[推荐]: Compiling wxWindows applications in the VC++ IDE:wxWindows 程序编译选项设置统揽
下面我会写的罗嗦一点,我之所以罗嗦,是因为我注定要成为大师级的人物~呵呵~首先,得确保你的wxWindows 已经安装好了,并且把你的wxWindows编译出了相应的lib和dll文件.
然后,把你的wxWindows安装目录添加到环境变量中去,以便于VC查找头文件和链接库和以及dll.
比如你的安装目录是C:/Program Files/wxWindows242,就在环境变量中添加一个变量: WXWIN=C:/Program Files/wxWindows242
在XP中是这样设置的:
我的电脑>>属性>>高级选项卡>>环境变量,然后在用户变量中新建一个变量,
变量名: WXWIN
变量值: C:/Program Files/wxWindows242
接着,在VC中包含头文件和库文件的路径
Tools>>Options>>Directories选项卡,
Show Directories for选Include files,然后在Directories一栏添加目录C:/Program Files/wxWindows242/include
Show Directories for选Library files,然后在Directories一栏添加目录C:/Program Files/wxWindows242/lib
--------------------
当然,你如果愿意在
Show Directories for选Source files,然后在Directories一栏添加目录C:/Program Files/wxWindows242/src
也是可以的.
接着,对于每一个新建的Project,按照你需要编译发行的版本来进行VC中的设置Project>>Settings.(或者按Alt+ F7)
注意,由于我们使用wxWindows,所以,不需要使用MFC,因此,下面的设置中,无论是你想发行哪个版本,在工程设置对话框中(Project Settings),General 选项卡中,都选择Not Using MFC.
如果你想使用wxWIndows和MFC混合编程,我在另外的文章中再详细叙述.
下面根据网上文章和wxWindows给的实际例子(以官方例子为准),以及我个人的编译实践,介绍一下需要添加的编译配置--这个说的是你做好了上面的说的设置环境变量(下面就要用的),包含头文件和库文件路径的事情,然后使用AppWizard在除了wxWindows安装目录的Samples目录之外的目录(比如E:/ Test 下)添加了一个Win32 Application,建立一个空的工程(Empty Project),添加了一个main.cpp(文件名随你自己定了)之后,进行的设置(Settings).
注:如果你在wxWindows安装目录下面的Samples目录下建立了一个工程,那么,你按照官方例子(Samples目录下的例子)进行设置就一定行的,我试过,Ctrl+C,Ctrl+V,OK.
编译版本目录
发行版本
Debug
Debug Unicode
Debug DLL
Debug Unicode DLL
Release
Release Unicode
Release DLL
Release Unicode DLL
编译调试Debug版(Win32 Debug)<<请认真阅读,这个写的也比较详细,其他的编译版本与这个很类似
General选项卡
默认吧^_^
C/C++选项卡
分类(Category)下拉框中选定General, 在PreProcessor difinitions 中添加: WIN32,_DEBUG,_WINDOWS,WINVER=0x400,_MT,wxUSE_GUI=1,__WXDEBUG__,WXDEBUG=1
分类下拉框中选定PreProcessor, 在Additional include directories 中添加:
$(WXWIN)/lib/mswd
注,因为你编译的是Debug版本,并且不使用DLL,而Debug版的必须包含debug版的setup.h,它位于$(WXWIN)/lib/ mswd 目录下的wx/setup.h,虽然在这个wx子目录下面,但是包含到mswd目录就可以了.
$(WXWIN)是指前面在用户环境变量中注册的变量,在我这里是代表C:/Program Files/wxWindows242目录.使用它,主要是减少输入量,每次输入C:/Program Files/wxWindows242多累啊,这个在后面的配置中就不敷述了.
注意:
这个setup.h 在每种发行版本中都是不一样的(主要是里面有些配置开关不一样,当然具体是不是这样的,我没有看每一个setup.h),分别处于不同的目录,如下表
发行版本 | Setup.h包含路径(其实在wx/下) |
Debug | $(WXWIN)/lib/mswd |
Debug Unicode | $(WXWIN)/lib/mswud |
Debug DLL | $(WXWIN)/lib/mswdlld |
Debug Unicode DLL | $(WXWIN)/lib/mswdllud |
Release | $(WXWIN)/lib/msw |
Release Unicode | $(WXWIN)/lib/mswu |
Release DLL | $(WXWIN)/lib/mswdll |
Release Unicode DLL | $(WXWIN)/lib/mswdllu |
至于Use precompiled header file(.pch) ,through header: $(WXWIN)/include/wx/wx.h,我倒没有试过,大家可以自己试试,我自己用的是Automatic use of precompiled headers.
另外,有的外国网站上说千万不要使用Create precompiled header file(.pch)这个选项,因为可能造成windows的崩溃(Crash),我试过那么一次,觉得好像没有那么严重.
分类下拉框中选定Code Generation , 在Use run-time library 中选择Debug Multithreaded DLL (调试版Debug用的,发行版Release用Multithreaded DLL,至于为什么要选 (Debug)Multithreaded DLL,是因为wxWindows 是使用Multithreaded DLL编译的)
Link选项卡
分类下拉框中选定General,Object/library modules 中原有的lib是
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib,
我们需要添加的是 comctl32.lib rpcrt4.lib wsock32.lib wxmswd.lib,对于最后一个wxmswd.lib,有下表说明
发行版本 | 额外添加的wxWindows库(library) |
Debug | wxmswd.lib |
Debug Unicode | wxmswud.lib |
Debug DLL | wxmsw24d.lib(8.3格式,我的是2.4.2版本) |
Debug Unicode DLL | wxmsw24ud.lib(8.3格式?我晕,有变化~!) |
Release | wxmsw.lib |
Release Unicode | wxmswu.lib |
Release DLL | wxmsw24.lib |
Release Unicode DLL | wxmsw24u.lib |
处理图像,注意参看sample目录下的image例子.
还有一个比较重要而且比较先进的是,如果你使用wxWindows的专用XML资源文件(.xrc文件)你还必须包含wxxrc.lib(这个库,你要另外编译src目录下的相关工程),这些在后面的配置中就不敷述了.
分类下拉框中选定Input,在Ignore libraries 中添加libcd.lib
Resources选项卡
在 Additional resource include directories 中添加$(WXWIN)/include ,注意这一步不是必须的,可以不用设置.
但是当你需要使用wxWindows特定格式的XML格式的资源文件(rc)的时候,应该注意把$(WXWIN) /contrib/include目录包含进来
编译发行版(Win32 Release)
General选项卡
默认吧^_^
C/C++选项卡
分类下拉框中选定General, 在PreProcessor difinitions 中添加: NDEBUG,WIN32,_WINDOWS,WINVER=0x400,_MT,wxUSE_GUI=1
分类下拉框中选定PreProcessor, 在Additional include directories 中添加:
$(WXWIN)/lib/msw
注,因为你编译的是Release版本,并且不使用DLL,而Release版的必须包含Release版的setup.h,它位于$(WXWIN)/ lib/ msw 目录下的wx/setup.h,虽然在这个wx子目录下面,但是包含到msw目录就可以了.
分类下拉框中选定PreCompiled Headers, 选择Not using precompiled headers 或者 Automatic use of precompiled headers (推荐).
分类下拉框中选定Code Generation , 在Use run-time library 中选择Multithreaded DLL(Release版用这个).
Link选项卡
分类下拉框中选定General,Object/library modules 中原有的lib是
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib,
我们需要添加的是 comctl32.lib rpcrt4.lib wsock32.lib wxmsw.lib,对于最后一个wxmsw.lib,在上面有说明
另外,如果你需要处理图像,可以再添加png.lib jpeg.lib tiff.lib (这些是发行版Release用的),如果你想使用正则表达式, 添加reged.lib,使用zip功能,添加zlid.lib
还有一个比较重要而且比较先进的是,如果你使用wxWindows的专用XML资源文件(.xrc文件)你还必须包含wxxrc.lib(这个库,你要另外编译src目录下的相关工程),这些在后面的配置中就不敷述了.
分类下拉框中选定Input,在Ignore libraries 中添加libc.lib,注意和Debug版本比较一下,debug忽略的是libcd.lib
Resources选项卡
在 Additional resource include directories 中添加$(WXWIN)/include ,注意这一步不是必须的,可以不用设置.
但是当你需要使用wxWindows特定格式的XML格式的资源文件(rc)的时候,应该注意把$(WXWIN) /contrib/include目录包含进来
编译发行Release DLL版(Win32 Release DLL)
首先你的确保你把 wxmsw24ud.dll wxmsw24.dll wxmsw24u.dll wxmsw24d.dll这几个文件(在lib目录下)复制到你的Windows/System32/目录下去,免得程序运行的时候,弹出找不到 XXX.dll的错误.
另外这里说一点闲话,对比MFC的dll(比如MFC42.dll),这几个dll的大小是它的几倍,MFC42.dll只有900多KB,而上面这几个 dll,都是2~4MB
你可能还不知道怎么编译Win32 Release DLL版本,因为编译器默认的只有Win32 Debug 版和Win32 Release 版.这里告诉你步骤: Build>>Config>>弹出configurations对话框>>单击Add按钮>>弹出 Add Project configuration对话框>>在Configuration中输入 Release DLL>>在Copy Settings From中选择XXX-Win32 Release(你如果是Win32 Debug DLL,就从XXX-Win32 Debug复制配置)>>单击OK,成功!
General选项卡
默认吧^_^
C/C++选项卡
分类下拉框中选定General, 在PreProcessor difinitions 中添加: NDEBUG,WIN32,_WINDOWS,WINVER=0x400,_MT,wxUSE_GUI=1,WXUSINGDLL=1
分类下拉框中选定PreProcessor, 在Additional include directories 中添加:
$(WXWIN)/lib/mswdll
注,因为你编译的是Release版本,并且使用了DLL,而Release DLL版的必须包含Release DLL版的setup.h,它位于$(WXWIN)/ lib/ mswdll 目录下的wx/setup.h,虽然在这个wx子目录下面,但是包含到mswdll目录就可以了.
分类下拉框中选定PreCompiled Headers, 选择Not using precompiled headers 或者 Automatic use of precompiled headers (推荐).
分类下拉框中选定Code Generation , 在Use run-time library 中选择Multithreaded DLL(Release版用这个).
Link选项卡
分类下拉框中选定General,Object/library modules 中原有的lib是
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib,
我们需要添加的是 comctl32.lib rpcrt4.lib wsock32.lib wxmsw24.lib ,对于最后一个wxmsw24.lib ,在上面有说明
分类下拉框中选定Input,在Ignore libraries 中添加libc.lib,注意和Debug版本比较一下,debug忽略的是libcd.lib
Resources选项卡
在 Additional resource include directories 中添加$(WXWIN)/include ,注意这一步不是必须的,可以不用设置.
但是当你需要使用wxWindows特定格式的XML格式的资源文件(rc)的时候,应该注意把$(WXWIN) /contrib/include目录包含进来
编译调试Debug DLL版(Win32 Debug DLL) 和上面的类似,NDEBUG改为_DEBUG,相应的改动包含的lib文件. 编译发行Release Unicode版(Win32 Release Unicode)
General选项卡
默认吧^_^
C/C++选项卡
分类下拉框中选定General, 在PreProcessor difinitions 中添加: NDEBUG,WIN32,_WINDOWS,WINVER=0x400,_MT,wxUSE_GUI=1,_UNICOEDE,UNICODE
分类下拉框中选定PreProcessor, 在Additional include directories 中添加:
$(WXWIN)/lib/mswu
注,因为你编译的是Release Unicode版本,并且不使用DLL,而Release版的必须包含Release版的setup.h,它位于$(WXWIN)/ lib/ mswu目录下的wx/setup.h,虽然在这个wx子目录下面,但是包含到mswu目录就可以了.
分类下拉框中选定PreCompiled Headers, 选择Not using precompiled headers 或者 Automatic use of precompiled headers (推荐).
分类下拉框中选定Code Generation , 在Use run-time library 中选择Multithreaded DLL(Release版用这个).
Link选项卡
分类下拉框中选定General, Object/library modules 中原有的lib是
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib,
我们需要添加的是 comctl32.lib rpcrt4.lib wsock32.lib wxmswu.lib,对于最后一个wxmswu.lib,在上面有说明
分类下拉框中选定Input,在Ignore libraries 中添加libc.lib,注意和Debug版本比较一下,debug忽略的是libcd.lib
Resources选项卡
在 Additional resource include directories 中添加$(WXWIN)/include ,注意这一步不是必须的,可以不用设置.
但是当你需要使用wxWindows特定格式的XML格式的资源文件(rc)的时候,应该注意把$(WXWIN) /contrib/include目录包含进来
编译调试Debug Unicode版(Win32 Debug Unicode) 和上面的类似,NDEBUG改为_DEBUG,相应的改动包含的lib文件. 编译发行Release Unicode DLL版(Win32 Release Unicode DLL)
General选项卡
默认吧^_^
C/C++选项卡
分类下拉框中选定General, 在PreProcessor difinitions 中添加: NDEBUG,WIN32,_WINDOWS,WINVER=0x400,_MT,wxUSE_GUI=1,WXUSINGDLL=1,_UNICOEDE,UNICODE,
分类下拉框中选定PreProcessor, 在Additional include directories 中添加:
$(WXWIN)/lib/mswdllu
注,因为你编译的是Release Unicode版本,并且使用DLL,而Release Unicode版的必须包含Release Unicode版的setup.h,它位于$(WXWIN)/ lib/ mswdllu 目录下的wx/setup.h,虽然在这个wx子目录下面,但是包含到mswdllu 目录就可以了.
分类下拉框中选定PreCompiled Headers, 选择Not using precompiled headers 或者 Automatic use of precompiled headers (推荐).
分类下拉框中选定Code Generation , 在Use run-time library 中选择Multithreaded DLL(Release版用这个).
Link选项卡
分类下拉框中选定General,Object/library modules 中原有的lib是
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib,
我们需要添加的是 comctl32.lib rpcrt4.lib wsock32.lib wxmsw.lib,对于最后一个wxmsw.lib,在上面有说明
另外,如果你需要处理图像,可以再添加png.lib jpeg.lib tiff.lib (这些是发行版Release用的),如果你想使用正则表达式, 添加reged.lib,使用zip功能,添加zlid.lib
还有一个比较重要而且比较先进的是,如果你使用wxWindows的专用XML资源文件(.xrc文件)你还必须包含wxxrc.lib(这个库,你要另外编译src目录下的相关工程),这些在后面的配置中就不敷述了.
分类下拉框中选定Input,在Ignore libraries 中添加libc.lib,注意和Debug版本比较一下,debug忽略的是libcd.lib
Resources选项卡
在 Additional resource include directories 中添加$(WXWIN)/include ,注意这一步不是必须的,可以不用设置.
但是当你需要使用wxWindows特定格式的XML格式的资源文件(rc)的时候,应该注意把$(WXWIN) /contrib/include目录包含进来
编译调试Debug Unicode DLL版(Win32 Debug Unicode DLL) 和上面的类似,NDEBUG改为_DEBUG,相应的改动包含的lib文件. 不过这里还要强调一点的是,所有的Unicode版的,加入 _UNICODE 和 UNICODE 我没有试过,如果谁试过就给我指出错误来,在此谢过.
有一点参考资料写在最上面了.
结语: 祝大家好运,鸡年大吉!
huyoo于2005年4月1日,好像是愚人节咯~
联系我,请发邮件至 huyoo353{at}126{dot}com
相关文章推荐
- wxWindows 程序编译选项设置统揽
- 如何设置BCB编译选项才能让编译好的程序在未安装BCB的机器
- 如何用命令行(CMD)编译运行C 程序—环境变量的设置
- 桌面单击右键,显示属性无桌面、屏幕保护程序、外观、设置等选项?
- 设置Eclipse RCP程序的外观和首选项
- 开始学习Python,设置环境和编译一个简单的程序
- linux64平台上编译32位程序: GCC编译选项 -m64 -m32 -mx32
- VS 设置编译后的程序可以以管理员身份运行
- 不设置classpath可以编译简单的java程序没错(java.lang.NoClassDefFoundError错误)
- Xcode 常用编译选项设置
- Android开发实践:如何设置NDK的编译选项
- CMakeLists.txt中设置编译后的可执行程序优先调用本地库(和可执行程序在同一个文件夹下的库)
- Xcode 常用编译选项设置【推荐】
- 设置resharp4.0代码自动编译功能选项,暂时禁用
- gcc编译线程程序需带-lpthread选项(否则出错:undefined reference to `pthread_create')
- GCC 编译依赖库和程序运行依赖库设置
- VS 如何设置编译后的程序可以以管理员身份运行
- 【IAR】设置和编译信息解析 程序运行耗时 内存分配MAP
- Android开发实践:如何设置NDK的编译选项
- 编译iOS程序时的-all_load选项,以及-all_load 导致的 ld duplicate symbol xx的问题