比尔盖子 博客

Tag: 编译

VB6.0中“取消 Pentium(tm) FDIV 安全性检查”是什么意思

最近比尔盖子在用VB6.0编写一个小型程序。在高级编译优化选项中,有一项:“取消 Pentium(tm) FDIV 安全性检查”,这是什么意思呢?在查阅了资料以后,终于明白了,我们就来了解一下吧。

1994年10月,美国弗吉尼亚州Lynchburg College数学系教授Thomas Nicely发现用电脑处理长除法时一直出错。他用一个数字去除以824,633,702,441时,答案一直是错误的。事后才知道,这位教授使用的60-100MHz P5版本奔腾处理器在浮点运算单元有一个问题,原因是英特尔为了加速运算,将整个乘法表烧录在处理器上面,但是2048个乘法数字中,有5个输入错误。在极少数情况下,会导致除法运算的精确度降低甚至出错。这就是后来臭名昭著的Pentium FDIV bug。

因此,为了避免由于处理器bug导致的运算错误,很多编译器都增加了一个编译选项,可以让程序通过间接运算的方法绕过这个FDIV bug,避免在有 FDIV bug的奔腾处理器上运算错误。但是,由于如今几乎已经不可能有人使用这种老奔腾处理器了,因此可以在VB6.0或其它的编译器中(如果有的话),安全的“取消 Pentium(tm) FDIV 安全性检查”,可以轻微提高性能,同时不会导致任何异常。

最后送上十几年前的那个笑话:英特尔有新格言了

United We Stand, Divided We Fall.

注:这句话原出自《伊索寓言》,翻译过来即是

合即立,分即跨。

但是Divided在这里是“除法”的意思。于是就有了翻译过来大概是

加法我们对了,除法我们错了。

解决Gentoo能识别非iOS的ipod但不能识别iOS设备的问题

今天想用Gentoo给iPhone同步一些音乐,却发现播放器没有识别。通过dmesg得知:

usb 1-3: New USB device found, idVendor=05ac, idProduct=1297
usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-3: Product: iPhone
usb 1-3: Manufacturer: Apple Inc.
usb 1-3: SerialNumber: <You mustn't know>

但是系统没有给其分配设备文件,导致无法挂载。重新配置内核,增加GUID分区表等驱动,未果。最后经过搜索,安装了libimobiledevice,但仍未果。

经过实验,发现比尔盖子的iPod不是iOS系统,可以挂载;但其它iOS设备:iPad、iPhone都无法挂载。经过搜索,发现原来需要增加一个USE:ios,然后再深度编译emerge -avuDN world即可。

原来,USE:ipod是给非iOS的iPod使用的,而iOS的iPod touch、iPhone、iPad则需要使用USE:ios。

最后安装ifuse即可。

iOS 5

但若是用此方法,无法使用iOS 5 的设备。那是因为iOS 5太新了,libimobiledevice和ifuse不支持。需要编译安装git版本。

git clone git://git.sukimashita.com/libimobiledevice.git
cd libimobiledevice/
./autogen.sh
make -j2
su -c 'make install'

git clone git://git.sukimashita.com/ifuse.git
cd ifuse/
./autogen.sh
make -j2
su -c 'make install'

#这样系统就会认为你的这两个包已经安装了,就不会再装一次了,但是当这两个包升级以后就需要自己维护了
su -c 'emerge -C ifuse libimobiledevice'
su -c 'mkdir /etc/portage/profile/'
su -c 'echo "app-pda/ifuse-1.1.1" >> /etc/portage/profile/package.provided'
su -c 'echo "app-pda/libimobiledevice-1.1.1" >> /etc/portage/profile/package.provided'

 

Fedora 16编译安装Osd-Lyrics

昨天升级完Fedora 16后又闲着没事干,想起来以前看过一篇文章,可以安装一个插件让Linux实现歌词同步显示。于是尝试了许多Rtythmbox的插件,结果发现这些插件安装上去以后,都没有在Rtythmbox的插件列表中显示出来……

最后,发现了Osd-Lyrics。于是决定下载源码编译安装,结果发现编译失败。于是我去提交了一个Bug(Issue 244: Fedora 16 编译失败),结果10个小时就解决了!

现在编译安装的过程如下:

检查依赖项目

  • gcc gcc-c++
  • autoconf automake libtool intltool
  • gtk2-devel >= 2.12.0
  • dbus-glib-devel
  • libcurl-devel
  • libnotify-devel
  • sqlite-devel
  • libmpd-devel (this is unnecessary if you configure with –disable-mpd option)
  • xmms2-devel (this is unnecessary if you configure with –disable-xmms2 option)

开始编译

git clone git://github.com/tigersoldier/osd-lyrics.git
cd osd-lyrics
git checkout --track origin/develop
aclocal
autoheader
autoconf
automake --add-missing
./configure
make -j3
su -c "make install"

然后在Gnome3“应用程序”的“影音”中找到“Osd Lyrics”,打开,然后拿Rtythmbox放一首歌,歌词出来了!

Copyright © 2022 比尔盖子 博客

Theme by Anders NorenUp ↑