wxwidgets源码
⑴ linux上如何编译praat源码,编译后是windows版程序
我的操作系统是 debian sarge,其中已经有 mingw32 编译器,只需安装:
apt-get install mingw32这会安装好 mingw32 交叉编译系统,用 i586-mingw32msvc-gcc 即可为 Windows 编译程序。
在编译 wxWidgets 的 Windows 版本之前,需要安装 DirectX 的头文件。大概是由于版权之类的原因,在 Debian
的 mingw32 中并未包含 DirectX 的头文件,只包含了 DirectX 的库,因此需要自己安装。如果不安装,在编译
wxWidgets 的时候会有警告,并且系统不会产生 wxDisplay 这个类。安装并不复杂,只要从网络上找到相关的头文件和库文件,并解压到
/usr/i586-mingw32msvc 目录中即可。
然后就可以编译 wxWidgets 了,下载并解压源码后,用如下命令可以编译:
./configure --host=i586-mingw32msvc --target=i586-mingw32msvc --prefix=~/Workshop/mingw32 --enable-monolithic --disable-shared
make; make install-strip
make -C contrib; make -C contrib install-strip
编译完成后,进入 samples 目录,随便找一个例程 make 一下,便可产生 exe 文件了。要执行这个文件,需要
mingwm10.dll 这个文件,在 Debian 中,此文件位于 /usr/share/doc/mingw32-runtime
目录中,把它复制到当前目录,便可用 wine 执行了。如果没有问题,也可以把这个文件仍到 Wine 的 C:\Windows\system32
目录中。
⑵ 如何在CentOS上安装并汉化Code:Blocks
安装步骤 一、安装wxWidgets 1.下载wxWidgets源码包 2.解压。可以使用tar命令,CentOS里也可以直接用鼠标右键操作 3.进入解压后的目录,打开终端,依次输入以下命令 ./configure (最好不要加上prefix参数,使用默认设置会比较有利于后面步骤的顺利推进) make (编译。此过程相当漫长,可以打两盘斗地主再回来) make install (安装。) 安装完成后,终端输出如下提示: The installation of wxWidgets is finished. On certain platforms (e.g. Linux) you'll now have to run ldconfig if you installed a shared library and also modify the LD_LIBRARY_PATH (or equivalent) environment variable. 这是说需要设置环境变量LD_LIBRAY_PATH(环境变量的作用是告诉系统寻找wxWidgets开发库该去的路径。因为操作系统的逻辑是,如果在我认为该去的路径没找到的我要的东西的话,我就会认为那个东西木有安装),暂不关闭本大步中打开的终端。 二、设定环境变量LD_LIBRAY_PATH 1.仍在第一大步打开的终端,不改变目录,输入以下命令: ldconfig (这完全是根据第一步最后的提示信息来的) export -p (查看系统当前环境变量的值,此步仅为了和设置后的效果作对比,可省略) 可以看到现在,LD_LIBRAY_PATH的值是空的(结果中没有此项的存在)。 2.继续输入命令: ./wx-config --libs 得到结果(安装目录不同结果会有小差异): -L/root/Desktop/wxWidgets-2.8.12/lib -pthread -Wl,-rpath,/root/Desktop/wxWidgets-2.8.12/lib -lwx_gtk2_richtext-2.8 -lwx_gtk2_aui-2.8 -lwx_gtk2_xrc-2.8 -lwx_gtk2_qa-2.8 -lwx_gtk2_html-2.8 -lwx_gtk2_adv-2.8 -lwx_gtk2_core-2.8 -lwx_base_xml-2.8 -lwx_base_net-2.8 -lwx_base-2.8 3.在/etc目录下找到文件profile,打开它,在里面添加以下命令: export LD_LIBRARY_PATH="…………" 引号里的内容为上一小步“./wx-config --libs”的执行结果。export命令用于编辑环境变量,如果你不知道该加在什么位置,请在文件中随意另找一条export命令,跟在他后面即可。保存profile文件。 4.还是在前面打开的终端,继续输入命令: source /etc/profile (在不用重启系统的情况下使profile修改的内容生效) export -p (查看系统当前环境变量的值) 这回可以看到,LD_LIBRAY_PATH的值被成功设定为第2小步里“./wx-config --libs”的执行结果。 三、安装codeblocks 1.下载codeblocks源码包, 2.解压。 3.进入解压后的目录,打开新的终端,依次输入以下命令 ./configure --prefix=/usr/local/codeblocks (prefix参数用以指定安装路径。如果跳过了第二大步,则在此会得到没有安装wxWidgets的提示) make (编译。额,咱们继续斗地主……) make install (安装。) OK,至此,Code::Blocks安装圆满完成。在任意目录下打开终端,直接执行codeblocks命令即可运行Code::Blocks。
⑶ codeblocks头文件问题
codeblocks+wxWidgets这一对开源组合真是够强大,codeblocks支持的项目类型多的惊人,wxWidgets又为codeblocks加上了相当强劲的可视化程序开发功能,可以说用这对组合来开发程序丝毫不比在VS中用C#困难,而且由于codeblocks和wxWidgets都是开源软件,在windows和linux下都有相应的版本,移植程序就成为一件相当轻松的事情。
以下内容转载自 http://shiningray.cn/windows-shang-pei--codeblocks-wxwidgets.html,内容有所改动,原文图片没有附上,有需要的去上面的地址查看
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
前提准备
编译器
你至少应该正确安装了免费的MinGW/GCC编译器或者是某种微软的编译器(Express editions是免费的,但是你还需要安装Platform SDK)。如果是用MinGW/GCC,至少要准备gcc-core、gcc-g++、binutils、w32api以及mingw32-make包;同时,确保包含编译器可执行文件的目录(一般是C:\MinGW\bin)在Windows的PATH环境变量中。
提示:设置完环境变量之后需要重启计算机才能生效。
如果选择MinGW/GCC编译器,可以在直接选择包含MinGW的Code::Blocks安装包,见下一节。
最新版的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。点击此处下载 wxPack v2.8.7.03 (wxPack_v2.8.7.03.exe, 236.9 MB)。你也可以查看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执行构建命令,MinGW/GCC推荐的命令是:
mingw32-make -f makefile.gcc BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=1MSVC推荐的构建命令是:
nmake -f makefile.vc BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=1这个过程需要花很久,快的机器大概30分钟可以完成,慢的可能就需要几个小时了。
如果使用的GCC的版本较新,构建过程中可能会出现大量的警告。这样会明显导致构建过程变慢;你可以将错误信息重定向到文件中,在上述命令后面添加2> err.log,也可以通过2>nul直接禁止警告信息。
其中关于BUILD、SHARED、MONOLITHIC以及UNICODE选项的解释,请仔细参考文章后面关于wxWidgets的构建参数的解释,这些参数十分关键,他们直接定义了你所使用的基本的wxWidgets开发环境。你必须严格按照你的编译参数设置Code::Blocks的配置向导。
在Code::Blocks中创建wxWidgets项目
在Code::Blocks的起始页面中,选择“Create a new project”,也可以在File菜单中,选择“New” -> “Project…”。
找到并选择“wxWidgets project”,并创建,接下来会出现一个向导帮助进行wxWidgets项目的配置:
第一个页面是简介,可以选择以后跳过。
选择你要使用的wxWidgets版本。如果你是按照本文的过程配置的,那么你应该选择“wxWidgets 2.8.x”。
设置你的项目的名字的位置。
输入作者的信息(非必要)
选择自动代码和文件生成的选项。
选择wxWidgets的位置。强烈建议在此使用全局变量:输入“$(#wx)”(不包含引号)。如果你还没定义这个全局变量,那么全局变量对话框会出现,在Base Path中,选择你的wxWidgets安装路径。其他路径可以不用填。
为你的项目选择debug/release配置。推荐至少选择debug配置。
选择你的wxWidgets构建选项。必须和你构建wxWidgets时所使用的选项一致!如果你按照本文之前的方式构建的,应该将“wxWidgets Library Settings”下的全部三个选项选中。如果用的是wxPack,由于wxPack包含了各种不同的版本,所以你只需要选择你需要的选项。这个页面的另一个设置和wxWidgets的构建选项没有关系,你可以按照喜好来选择。如果,出于某种原因,你想使用调试版本的wxWidgets构建,选择“Configure Advanced options”然后在下一页选择“Use __WXDEBUG__ and Debug wxWidgets lib”。
如果需要,选择额外的库。一般应用的话应该无须选择其中任何一个。
构建并运行程序
接下来,就可以选择“Build and run”(F9)对程序进行构建并运行了。如果顺利,你的wxWidgets应用程序就会出现。如果出现了什么问题,你可以参考后面的常见问题。
wxWidgets编译选项简介
BUILD
BUILD控制wxWidgets构建调试版本(BUILD=debug)或者是发布版本(BUILD=release)。绝大多数情况下你只需要wxWidgets的发布版本就可以了,因为你应该不想要去调试wxWidgets自身,同时你依然可以通过链接wxWidgets的发布版本来构建你自己的程序的调试版本。
调试构建wxWidgets会创建带有”d”后缀的库,例如”libwxmsw28d.a”、”wxmsw28d_gcc_custom.dll”。
调试构建wxWidgets会在wxWidgets库的输出目录中创建”mswd” 或者 “mswud” 目录。
发布构建wxWidgets创建的库没有”d”后缀,例如”libwxmsw28.a”、”wxmsw28_gcc_custom.dll”。
发布构建wxWidgets会在wxWidgets库的输出目录中创建”msw” 或者 “mswu” 目录。
SHARED
SHARED控制wxWidgets是构建DLL(SHARED=1)还是静态库(SHARED=0)。利用构建的DLL,主程序构建时间较快,可执行文件更小。但是可执行文件加上wxWidgets DLL的总大小更大,但是不同的可执行文件可以使用同一个DLL。
wxWidgets的DLL构建会创建导入库(如 libwxmsw28.a)以及DLL文件(如wxmsw28_gcc_custom.dll)。你必须在发布你的程序的时候包含这个DLL。
wxWidgets的静态构建只会创建静态库(如 libwxmsw28.a),发布的时候也无须包含wxWidgets的DLL。
MONOLITHIC
MONOLITHIC控制是构建一个单一的库(MONOLITHIC=1)还是多个组件库(MONOLITHIC=0)。使用单一构建,项目的设置和开发会更加简单,如果你同时使用DLL构建的话,你只需要分发一个DLL文件。如果使用非单一构建(multilib),会构建出多个不同的库同时你可以避免将整个wxWidgets的基本代码链接到主程序,就可以去掉不需要的库。同时你也必须确保你选择了正确的组件库。
wxWidgets的单一构建仅会创建一个wxWidgets导入库(如libwxmsw28.a)以及一个DLL(如wxmsw28_gcc_custom.dll)。
wxWidgets的多库(multilib)构建会创建多个导入库(libwx28_base.a等)以及多个DLL文件。
无论何种wxWidgets构建,都会创建额外的静态库(如libwxexpat.a、libwxjpeg.a等)。这些库对于wxWidgets的DLL构建一般是不需要的,但是当使用静态构建的时候,则是必须的。
UNICODE
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”、”wxmsw28_gcc_custom.dll”。
wxWidgets的ANSI构建会在wxWidgets库的输出目录中创建”msw”或”mswd”目录。
常见问题
出现类似于”wx/setup.h: No such file or directory”的错误
你在构建选项中缺少了很重要的编译器搜索路径。首先确认你是否在运行wxWidgets项目向导的时候正确选择了wxWidgets的构建配置。如果重新运行向导并配置依然无效,那么打开你的项目的构建选项并给编译起的搜索路径中添加”$(#wx.lib)\gcc_dll\mswu“(这里假设是一个单一的Unicode DLL构建)。
出现类似于”cannot find -lwxmsw28u”的错误
构建选项中的链接库错了。首先确认你是否在运行wxWidgets项目向导的时候正确选择了wxWidgets的构建配置。如果重新运行向导并配置依然无效,确定你构建了什么库,并相应在构建选项中调整库的名字。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
若要构建的程序能够显示中文,要对codeblocks进行一下设置,在edit(编辑)菜单里面的文件编码选择UTF-8,否则编译报错。
⑷ linux centos怎么安装codeblocks
安装步骤
一、安装wxWidgets
1.下载wxWidgets源码包,
2.解压。可以使用tar命令,CentOS里也可以直接用鼠标右键操作
3.进入解压后的目录,打开终端,依次输入以下命令
./configure (最好不要加上prefix参数,使用默认设置会比较有利于后面步骤的顺利推进)
make (编译。此过程相当漫长,可以打两盘斗地主再回来)
make install (安装。)
安装完成后,终端输出如下提示:
The installation of wxWidgets is finished. On certain
platforms (e.g. Linux) you'll now have to run ldconfig
if you installed a shared library and also modify the
LD_LIBRARY_PATH (or equivalent) environment variable.
这是说需要设置环境变量LD_LIBRAY_PATH(环境变量的作用是告诉系统寻找wxWidgets开发库该去的路径。因为操作系统的逻辑是,如果在我认为该去的路径没找到的我要的东西的话,我就会认为那个东西木有安装),暂不关闭本大步中打开的终端。
二、设定环境变量LD_LIBRAY_PATH
依据上一大步最后得到的提示信息作出以下操作,
1.仍在第一大步打开的终端,不改变目录,输入以下命令:
ldconfig (这完全是根据第一步最后的提示信息来的)
export -p (查看系统当前环境变量的值,此步仅为了和设置后的效果作对比,可省略)
可以看到现在,LD_LIBRAY_PATH的值是空的(结果中没有此项的存在)。
2.继续输入命令:
./wx-config --libs
得到结果(安装目录不同结果会有小差异):
-L/root/Desktop/wxWidgets-2.8.12/lib
-pthread -Wl,-rpath,/root/Desktop/wxWidgets-2.8.12/lib
-lwx_gtk2_richtext-2.8 -lwx_gtk2_aui-2.8 -lwx_gtk2_xrc-2.8
-lwx_gtk2_qa-2.8 -lwx_gtk2_html-2.8 -lwx_gtk2_adv-2.8 -lwx_gtk2_core-2.8
-lwx_base_xml-2.8 -lwx_base_net-2.8 -lwx_base-2.8
3.在/etc目录下找到文件profile,打开它,在里面添加以下命令:
export LD_LIBRARY_PATH="…………"
引号里的内容为上一小步“./wx-config --libs”的执行结果。export命令用于编辑环境变量,如果你不知道该加在什么位置,请在文件中随意另找一条export命令,跟在他后面即可。保存profile文件。
4.还是在前面打开的终端,继续输入命令:
source /etc/profile (在不用重启系统的情况下使profile修改的内容生效)
export -p (查看系统当前环境变量的值)
这回可以看到,LD_LIBRAY_PATH的值被成功设定为第2小步里“./wx-config --libs”的执行结果。
三、安装codeblocks
1.下载codeblocks源码包
2.解压。
3.进入解压后的目录,打开新的终端,依次输入以下命令
./configure --prefix=/usr/local/codeblocks (prefix参数用以指定安装路径。如果跳过了第二大步,则在此会得到没有安装wxWidgets的提示)
make
make install (安装。)
OK,至此,Code::Blocks安装圆满完成。在任意目录下打开终端,直接执行codeblocks命令即可运行Code::Blocks。
四、codeblocks汉化
1.下载codeblocks的汉化包,
2.在/usr/share/ 或者/usr/local/share/
目录下(看你在第三大步中是怎么指定的prefix参数)找到codeblocks目录(内含icons、images、lexers、scripts等
资源目录以及一些压缩包),并在该目录下建立一个子文件夹:locale(注意 locale
全为小写字母)。如果找不到,请看步骤3,否则直接看步骤4。
3.在桌面上打开终端,运行命令:locate codeblocks >codeblocks 。运行完毕后,在桌面生成了一个名为codeblocks的文件,打开该文件,从中找到codeblocks目录所在的路径。
4.将所下载的压缩包解压到第2步创建的locale目录下,则locale目录下应出现zh_CN子目录,内有一个名为codeblocks.mo的文件。
5.
启动Code::Blocks,点击主菜单的“Settings”,选择“Enviornment”。出现的对话框中,左边选中“View”,右边打勾
“Internationalization (needs restart)”,并在后面的复合框中选中“Chinese
(Simplified)”。确认退出本对话框。
6.重启Code::Blocks。再看到的应该是中文简体界面了。
⑸ 各位高手,小弟正在为选择使用Qt还是WxWidgets而烦恼,请大家给条明路吧!
很好的一篇文章
原文:我所知道的三种开源跨平台GUI toolkits—— GTK、Qt和wxWidgets
1、GTK+
GTK+基础
GTK+最初是GIMP的专用开发库,后来发展为Linux下开发图形界面的应用程序的主流开发工具之一。GTK+2.0是自由软件,并且是GNU工程的一部分。GTK+2.0的许可协议是LGPL。
GTK+使用C语言开发,但是其设计者使用面向对象技术。 在GNOME平台上提供了C++(gtkmm)、Perl、Ruby、Java和Python(PyGTK)绑定,其他的绑定有Ada、 D、 Haskell、PHP和所有的.NET编程语言。
与其他很多部件工具箱不同,GTK+并不基于Xt。这一决策优劣互见:优点是GTK+可以应用于其他系统,其灵活性也很强;而缺点就是它无法利用以传统方法为X11定制的X资源数据库。
Glade是一个界面设计工具,但是它也包含了一种描述GUI界面的XML语言,它和libglade一起工作就可以直接使用GTK和GNOME控件。
2、Qt
Qt简介
Qt是Trolltech公司的一个产品。
Qt是一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且 允许真正地组件编程。
自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用 程序的基础。Qt也是流行的Linux桌面环境KDE 的基础,KDE是所有主要的Linux发行版的一个标准组件。
Qt支持下述平台: MS/Windows - 95、98、NT 4.0、ME、和2000
Unix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台
Macintosh - Mac OS X
Embedded - 有帧缓冲(framebuffer)支持的Linux平台。
3、wxWidgets
开源软件(LGPL),针对C++、Python以及Perl的跨平台工具集。
详细介绍,参见细述 wxWindows
wxWidget作为一个C++ GUI Library从1992发展到现在,已经在全球范围内产生了极大的影响力,利用这个类库进行GUI开发的软件更是不计其数。
wxWidgets原名wxWindows,是由Julian Smart于1992年还在英国爱丁堡大学人工智能应用研究所开始的一个项目。Julian Smart现在是Anthemion软件公司的技术总监。
简单地说,wxWidgets提供了用于可在多平台上开发GUI应用程序的一整套简单易学易用的API。wxWidgets支持的多平台包括
Windows 3.1/95/98/NT/2000/XP、带有Motif
1.2版本以上的Unix、带有GTK+的Unix/Linux/*BSD、Mac等等。开发者只需要用自己使用的系统平台的编译器编译源程序,并链接上
相应的库文件,生成的程序代码即具有该平台的外观和界面。在这些GUI之上,wxWidgets还提供了在线帮助、网络编程、流处理、多种常用图形格式支
持、数据库支持、HTML察看和打印,等等各种强大的功能。
wxWidgets支持的Windows上的多种流行编译器包括:
Visual C++ 1.5, 4.0, 5.0, 6.0
Borland C++ 4.5, 5.0
Borland C++ Builder 1.0, 3.0
Watcom C++ 10.6 (Win32)
Cygwin
MinGW32
Metrowerks CodeWarrior 4
wxWidgets和GTK+的一大吸引力是它的wxWidgets 2 licence类型是属于LGPL ( Lesser
General Public License
)的,也就是说,使用它开发的软件并不要求一定得公开源码。这样,无论是免费软件的开发者、GPL类型软件开发者,还是纯粹商业软件开发者都可以免费使用
这个软件包。
相比之下,TrollTech的Qt似乎正是因为此因素而影响了它的受接受程度,因为用Qt开发商用软件者所需交纳的费用对于个人
开发者来说还是比较昂贵的,而且分单平台、二平台、三平台(即Qt/X11、Qt/Windows和Qt/Mac都包含在内了)三个不同产品包,又分
Professional和Enterprise不同Edition亦即不同价位,而且开发人员数不同价格也不同。
从这点说来,wxWidgets是绝对具有优势的。另外Qt起源于Linux上的开发,后来推展到Windows、Mac等其它平台;而wxWidgets恰好相反,始于Windows,其后移植到Unix等其它平台。
关于LGPL(Lesser General Public License ) 许可,这是 GNU
许可家族中一个不太严格的许可。LGPL 允许任何人使用该库提供的功能,而不
要求用户公开应用程序代码。(这对于许多工业应用来说很重要,因为由于以前的协议或许可,这种场合下一般不希望公开代码或者公开代码是显然不现实的。)使
用 LGPL 许可,您既可以是开放源码社区的好伙伴也可以是好公民。
中文非正式翻译参见 http://gnu.freehostingguru.com/lgpl/
其他资源:知名 GUI lib 简评 (GTK+, Qt, wxWidgets)
Technorati Tags: GTK, Qt, wxWidgets, 图形界面, 跨平台
从网上搜到的,仅供参考,也许对你会有一点小小的帮助!