软件开发

如何在 Ubuntu/Debian/Linux Mint 中编译和安装 wxWidgets

wxWidgets wxWidgets是一个程序开发框架/库, 允许你在Windows、Mac、Linux中使用相同的代码跨平台开发。它主要用C++写成,但也可以与其他语言绑定比如Python、Perl、Ruby。 本教程中我将向你展示如何在基于Debian的linux中如Ubuntu和Linux Mint中编译wxwidgets 3.0+。 从源码编译wxWidgets并不困难,仅仅需要几分钟。库可以按不同的方式来编译,比如静态或者动态库。 1. 下载 wxWidgets 第一步你需要从wxwidgets.org下载wxWidgets源码文件。 做完后,解压到目录。 2. 设置编译环境 要编译wxwidgets,我们需要一些工具包括C++编译器,在L
2015-06-20
3分钟阅读时长

如何在Bash Shell脚本中显示对话框

这个教程给出几个如何使用类似zenity和whiptail的工具在Bash Shell 脚本中提供消息/对话框的例子。使用这些工具,你的脚本能够告知用户当前程序运行的状态并能与用户进行交互。这两个工具的不同之处在于显示消息框或者对话框的方式。Zenity用GTK工具包创建图形用户界面,而whiptail则在终端窗口内创建消息框。 Zenity 工具 在Ubuntu中安装zenity,运行: sudo apt-get install zenity 用zenity创建消息框或者对话框的命令是不言自明的,我们会给你提供一些例子来参考。 创建消息框 zenity –info –title "Information Box" –text "This
2015-06-02
3分钟阅读时长

既然float不能表示所有的int,那为什么在类型转换时C++将int转换成float?

问题: 代码如下: int i = 23; float f = 3.14; if (i == f) // 执行某段代码 编译器会将i转换成float类型,然后比较这两个float的大小,但是float能够表示所有的int吗?为什么没有将int和float转换成double类型进行比较呢? 回答: 在整型数的演变中,当int变成unsigned时,会丢掉负数部分(有趣的是,这样的话,0u -1就是对的了)。 和C语言中的大部分机制(在C++中得到继承)一样,就硬件操作而言,常见的算术转换应该简明易懂。C语言的发明者精通他们所使用机器上的汇编语言,他们编写的C语言对他们和像他们一样编写程序的人有直
2015-05-11
3分钟阅读时长

Linux有问必答:Perl中本地时间和UNIX时间戳间相互转换

问题: 在Perl语言中,我需要转换易读的日期和时间到对应的UNIX时间戳,反之亦然。你可以给我一些将日期及时间转换到UNIX时间戳的Perl代码例子吗?或者相反,转换UNIX时间戳到可读的日期和时间。 当你的Perl脚本需要解决时间信息,这里有两种方法来表示和处理日期和时间。一种方法是易读的时间表示(例,"Sat Mar 14 10:14:05 EDT 2015"),另外一种是使用UNIX时间戳(也叫新纪元时间),这是从1970年1月1日到今所经过的时间秒数。每一种方法都有它自己的优劣势,取决于你的需要,也许也就需要转换一种格式到另一种。 Perl中转换本地时间
2015-04-08
2分钟阅读时长

C语言数据类型是如何被大多数计算机系统所支持?

问题: 在读KR版的The C Programming Language一书时,我在看到这样一条说明: 因为C语言提供的数据类型和控制结构可以直接被大部分计算机系统所支持,所以在实现自包含程序时所需要的运行库文件一般很小。 这段黑体说明了什么?能否找到一个例子来说明C语言中的某种数据类型或控制结构不被某种计算机系统直接支持呢? 回答: 事实上,C语言中确实有不被直接支持的数据类型。 在许多嵌入式系统中,硬件上并没有浮点运算单元。因此,如果你写出下面的代码: float x = 1.0f, y = 2.0f; return x + y; 可能会被转化成下面这种形式: unsi
2015-04-03
2分钟阅读时长

使用Nemiver调试器来调试 C/C++ 程序

如果你读过我写的使用GDB命令行调试器调试C/C++程序,你就会明白一个调试器对一段C/C++程序来说有多么的重要和有用。然而,如果一个像GDB这样的命令行对你而言听起来更像一个问题而不是一个解决方案的话,那么你也许会对Nemiver更感兴趣。Nemiver 是一款基于 GTK+ 的用于C/C++程序的图形化的独立调试器,它以GDB作为其后端。最令人赞赏的是其速度和稳定性,Nemiver是一个非常可靠,具备许多优点的调试工具。 Nemiver的安装 基于Debian发行版,它的安装时非常直接简单,如下: $ sudo apt-get install nemiver 在Arch Linux中安装如下: $
2015-03-24
4分钟阅读时长

在Linux上使用Python和Flask创建你的第一个应用

无论你在linux上娱乐还是工作,这对你而言都是一个使用python来编程的很好的机会。回到大学我希望他们教我的是Python而不是Java,这学起来很有趣且在实际的应用如yum包管理器中很有用。
2015-03-12
5分钟阅读时长