天天看点

windows系统+codeblocks+VC6编译器下配置wxWidgets的wxUniversal环境

        想要用wxUniversal本来是因为想弄个可以改变颜色的进度条wxGauge,用了SetBackgroundColour(),放进代码中一用,咦,颜色没改变,clean后再编译,还是没变。后来明白这是wxWidgets默认用了native控件,改不了,这就和java用了windowsLookAndFeel后没法改进度条颜色一样。后来了解到wxUniversal下各个控件的颜色外观可以自己控制,于是想用wxUniversal,无奈网上有关资料太少,今天终于配置完,赶紧记下来备忘。

        编译:

动态链接,debug版

nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=debug WXUNIV=1 SHARED=1 UNICODE=1 MONOLITHIC=0 USE_RTTI=0

动态链接,release版

nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=release WXUNIV=1 DEBUG_INFO=0 SHARED=1 UNICODE=1 MONOLITHIC=0 USE_RTTI=0

静态,release版

nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=release WXUNIV=1 DEBUG_INFO=0 SHARED=0 UNICODE=1 USE_RTTI=0

静态 ,debug版

nmake -f makefile.vc CPPFLAGS=/Os LDFLAGS="/MANIFEST:NO /OPT:REF /OPT:ICF" BUILD=debug WXUNIV=1 SHARED=0 UNICODE=1 USE_RTTI=0

最好注意编译是否有失败的地方,如果有,回头重新编译一下

在codeblocks下右键点击工程,compiler flags 勾选/Zi,/MDd

在右侧的other options,添加

/TP

/EHsc

/Fo"Debug\\"

/nologo

/c

/errorReport:prompt

在#defines,添加

"__WXDEBUG__"

"WIN32"

"_DEBUG"

"__WXMSW__"

"__WXUNIVERSAL__"

"_WINDOWS"

"NOPCH"

"_UNICODE"

"UNICODE"

在linker settings 中,debug版本需要的库如下

msvcprtd.lib

msvcrtd.lib

wxmswuniv29ud_core.lib

wxbase29ud.lib

wxpngd.lib

wxzlibd.lib

右侧的other linker settings添加

/NODEFAULTLIB:libcpmtd.lib

/NODEFAULTLIB:libcmtd.lib

/NODEFAULTLIB:msvcrt.lib

在search directories中

compiler:C:\wxWidgets-2.9.4\lib\vc_dll\mswunivud

linker:C:\wxWidgets-2.9.4\lib\vc_dll

resource compiler:C:\wxWidgets-2.9.4\lib\vc_dll\mswunivud

到现在为止wxUniversal环境以及配置好了,在自己的进度条后面加上

m_gauge->SetBackgroundColour(*wxBLUE);

m_gauge->SetValue(50);

果然颜色变了!