关于wxWidgets的samples的编译
关于wxWidgets的samples的编译
由于本人初学wxWidgets,并且之前都是使用VC做程序开发所以对gcc的设置不是很熟悉。在使用编译mingw32编译wxWidgets自带的例程时会出现编译错误。估计是编译或链接路径上有问题。 后来想了一个办法,就是用codeblocks新建一个wxWidgets的项目然后将所有文件从项目中移除,将想要编译的例程的cpp文件拷到你新建的项目文件夹下,然后将此文件加入项目并编译。有时候可能会提示缺少一些 icon 或是 bmp 等文件,从对应的路径下拷过来就可以了。当然有时候还要改下例子源文件中的include路径。一般按照这种方式都可以解决例程的编译问题。
希望对初学者有所帮助.
希望对初学者有所帮助.
对于MinGW,wxWidgets提供了Makefile.gcc进行编译,使用它就可以毫无问题地通过编译。
我个人用MinGW编译过所有的例子。
参见 http://blog.csdn.net/Utensil/archive/20 ... 31582.aspx
注意,有些例子需要wxWidgets本身编译时打开某些宏开关,请参见
http://docs.wxwidgets.org/trunk/page_samples.html
中的Build Note。
-Utensil
我个人用MinGW编译过所有的例子。
参见 http://blog.csdn.net/Utensil/archive/20 ... 31582.aspx
注意,有些例子需要wxWidgets本身编译时打开某些宏开关,请参见
http://docs.wxwidgets.org/trunk/page_samples.html
中的Build Note。
-Utensil
In fascination of creating worlds by words, and in pursuit of words behind the world.
On Github: http://utensil.github.com
Technical Blog in Chinese: http://utensil.iteye.com/
On Github: http://utensil.github.com
Technical Blog in Chinese: http://utensil.iteye.com/
你好,我看了这个帖子,也看了你在CSDN上面发表的那个帖子,但是你的CSDN上面的帖子,描述的是wxWidgets库的编译,并不是里面的sample的编译,想请您释疑一下。Utensil wrote:对于MinGW,wxWidgets提供了Makefile.gcc进行编译,使用它就可以毫无问题地通过编译。
我个人用MinGW编译过所有的例子。
参见 http://blog.csdn.net/Utensil/archive/20 ... 31582.aspx
注意,有些例子需要wxWidgets本身编译时打开某些宏开关,请参见
http://docs.wxwidgets.org/trunk/page_samples.html
中的Build Note。
-Utensil
我用的是codeblocks,也没有找到在sample目录下面找到codeblocks里面的工程文件cbp.
谢谢
编译例子的方法和编译wxWidgets自身的方法是一致的。
我只需要进入到例子所在的文件夹,执行同样的命令就可以了,因为例子的文件夹里,同样也有makefile.gcc。
具体来说:
cd C:\wxWidgets\samples\minimal
evnset
rlvdll
另外,目前wxWidgets不提供Code::Blocks的工程文件。你可以用CB的wx向导在sample的文件夹现场创建一个。只是我个人通常使用命令行。
-Utensil
我只需要进入到例子所在的文件夹,执行同样的命令就可以了,因为例子的文件夹里,同样也有makefile.gcc。
具体来说:
cd C:\wxWidgets\samples\minimal
evnset
rlvdll
另外,目前wxWidgets不提供Code::Blocks的工程文件。你可以用CB的wx向导在sample的文件夹现场创建一个。只是我个人通常使用命令行。
-Utensil
In fascination of creating worlds by words, and in pursuit of words behind the world.
On Github: http://utensil.github.com
Technical Blog in Chinese: http://utensil.iteye.com/
On Github: http://utensil.github.com
Technical Blog in Chinese: http://utensil.iteye.com/
谢谢大虾的有用信息。Utensil wrote:编译例子的方法和编译wxWidgets自身的方法是一致的。
我只需要进入到例子所在的文件夹,执行同样的命令就可以了,因为例子的文件夹里,同样也有makefile.gcc。
具体来说:
cd C:\wxWidgets\samples\minimal
evnset
rlvdll
另外,目前wxWidgets不提供Code::Blocks的工程文件。你可以用CB的wx向导在sample的文件夹现场创建一个。只是我个人通常使用命令行。
-Utensil
下面是我操作的步骤:(假设我已经创建了 wxWidgets 的library)
就是命令行跑到:
D:\wxWidgets-2.8.10\samples\minimal
下面,然后运行
mingw32-make -f makefile.gcc
呵呵,这样子,对应的exe文件就生成了,我的由于wxWidgets生成的是monolithis的DLL库。
所以对应的exe文件就是:
D:\wxWidgets-2.8.10\samples\minimal\gcc_mswudll\minimal.exe
文件,双击就可以运行了,呵呵。(当然,需要把对应的DLL放到windows 的patch目录里面)
谢谢!果然只有交流才能得到解决,自己一个人瞎弄,估计怎么也是弄不出来的。
Re:
wxWidgets-2.8.12 编译该minimal例子,报错:ollydbg23 wrote:谢谢大虾的有用信息。Utensil wrote:编译例子的方法和编译wxWidgets自身的方法是一致的。
我只需要进入到例子所在的文件夹,执行同样的命令就可以了,因为例子的文件夹里,同样也有makefile.gcc。
具体来说:
cd C:\wxWidgets\samples\minimal
evnset
rlvdll
另外,目前wxWidgets不提供Code::Blocks的工程文件。你可以用CB的wx向导在sample的文件夹现场创建一个。只是我个人通常使用命令行。
-Utensil
下面是我操作的步骤:(假设我已经创建了 wxWidgets 的library)
就是命令行跑到:
D:\wxWidgets-2.8.10\samples\minimal
下面,然后运行
mingw32-make -f makefile.gcc
呵呵,这样子,对应的exe文件就生成了,我的由于wxWidgets生成的是monolithis的DLL库。
所以对应的exe文件就是:
D:\wxWidgets-2.8.10\samples\minimal\gcc_mswudll\minimal.exe
文件,双击就可以运行了,呵呵。(当然,需要把对应的DLL放到windows 的patch目录里面)
谢谢!果然只有交流才能得到解决,自己一个人瞎弄,估计怎么也是弄不出来的。
E:\wxWidgets-2.8.12\include/wx/chkconf.h:904:9: error: #error "wxUSE_TAB_DIALOG
must be defined."
E:\wxWidgets-2.8.12\include/wx/chkconf.h:912:9: error: #error "wxUSE_TEXTCTRL mu
st be defined."
E:\wxWidgets-2.8.12\include/wx/chkconf.h:920:9: error: #error "wxUSE_TIPWINDOW m
ust be defined."
E:\wxWidgets-2.8.12\include/wx/chkconf.h:928:9: error: #error "wxUSE_TOOLBAR mus
t be defined."
E:\wxWidgets-2.8.12\include/wx/chkconf.h:936:9: error: #error "wxUSE_TOOLTIPS mu
st be defined."
E:\wxWidgets-2.8.12\include/wx/chkconf.h:944:9: error: #error "wxUSE_TREECTRL mu
st be defined."
E:\wxWidgets-2.8.12\include/wx/chkconf.h:952:9: error: #error "wxUSE_VALIDATORS
must be defined."
E:\wxWidgets-2.8.12\include/wx/chkconf.h:960:9: error: #error "wxUSE_WXHTML_HELP
must be defined."
E:\wxWidgets-2.8.12\include/wx/chkconf.h:968:9: error: #error "wxUSE_XRC must be
defined."
E:\wxWidgets-2.8.12\include/wx/chkconf.h:1765:9: error: #error "wxMessageBox is
always needed"
minimal.cpp: In member function 'void MyFrame::OnAbout(wxCommandEvent&)':
minimal.cpp:198: error: 'wxMessageBox' was not declared in this scope
mingw32-make: *** [gcc_mswud\minimal_minimal.o] Error 1
我按照楼上各位给的方法操作的,用bat文件和直接输入mingw32-make -f makefile.gcc 都报这个错。
Re: 关于wxWidgets的samples的编译
ollydbg23 wrote:@sunhuiyu
你wxWidgets2.8.12的库是否正常编译出来了?
samples需要在wx的库正常编译出来之后,再进行编译。我不清楚你的具体步骤,我这里都一切正常。
库是肯定正常编译出来了,不过我是拷出来单独编译的,我发现在原文件夹下面进行编译,可以成功编译的。
Re: 关于wxWidgets的samples的编译
如果你是连同minimal例子同目录下的makefile.gcc一起拷出来的,那么:
1。猜测是否没有把WX目录指给系统环境,如无,则在你的BAT 文件里先SET PATH(WXWIN);
2。确保用编译库的同一命令编译例子。比如编译库的命令是
mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=1 UNICODE=1 2>errlog.txt
则编译例子也用上述命令。
1。猜测是否没有把WX目录指给系统环境,如无,则在你的BAT 文件里先SET PATH(WXWIN);
2。确保用编译库的同一命令编译例子。比如编译库的命令是
mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=1 UNICODE=1 2>errlog.txt
则编译例子也用上述命令。
Last edited by samsam598 on Tue Sep 20, 2011 2:48 am, edited 1 time in total.
Regards,
Sam
-------------------------------------------------------------------
Windows 10 64bit
VS Community 2019
msys2-mingw13.2.0 C::B character set: UTF-8/GBK(Chinese)
wxWidgets 3.3/3.2.4 Unicode Mono Static gcc static build
Sam
-------------------------------------------------------------------
Windows 10 64bit
VS Community 2019
msys2-mingw13.2.0 C::B character set: UTF-8/GBK(Chinese)
wxWidgets 3.3/3.2.4 Unicode Mono Static gcc static build
Re: 关于wxWidgets的samples的编译
我觉得只要比较一下sample目录下编译的log和你copy出来编译错误的log,一下子就能找到原因所在,呵呵。