2005年12月5日
#
關(guān)于MinGW中的glut庫(kù)
Mark Kilgard提供的glut庫(kù)解壓后包含一個(gè).h,一個(gè).def,一個(gè).lib和一個(gè).dll文件。將.h拷貝到MinGW的include目錄下,.dll拷貝到windows的系統(tǒng)目錄下(windows\system32),.def和.lib文件在eclipse下面不太好使,可以使用reimp工具將.lib文件轉(zhuǎn)換成.a文件。命令如下:
reimp?glut32.lib
這樣,就會(huì)在同一目錄下生成一個(gè)glut32.def和一個(gè)libglut32.a文件,將libglut32.a拷貝到MinGW的lib目錄下。同時(shí)記得要?jiǎng)h除原來(lái)的glut庫(kù),否則link時(shí)可能會(huì)出錯(cuò)。
glut主程序框架
#include <GL/glut.h> //頭文件。
int main(int argc, char** argv) {
??? //初始化glut并建立窗口
??? glutInit(&argc, argv);
??? glutInitDisplayMode(GLUT_DEPTH | GLUT_SIGNLE | GLUT_RGB);
??? glutInitWindowPosition(100, 100);
??? glutInitWindowSize(200, 200);
??? glutCreateWindow(windowTitle);
???
??? //注冊(cè)glut的callback函數(shù)
??? glutDisplayFunc(display);
??? glutReshapeFunc(reshape);
??? glutIdleFunc(idle);
??? glutKeyboardFunc(keyboard);
???
??? //啟用光線、深度測(cè)試等
??? glEnable(GL_LIGHT0);
??? glEnable(GL_LIGHTING);
??? glEnable(GL_DEPTH_TEST);
??? //進(jìn)入glut主循環(huán)
??? glutMainLoop();
??? return 0;
}
安裝開發(fā)平臺(tái)
為了保持開發(fā)平臺(tái)的一致性,采用GCC+eclipse作為開發(fā)平臺(tái)。
在Debian Linux下安裝GCC和make就可以了。安裝了X環(huán)境后,系統(tǒng)中就已經(jīng)包含了OpenGL的頭文件和庫(kù)文件,但是要使用GLUT的話,還需要安裝GLUT的包。我使用的是freeglut3。
$sudo
?apt
-
get?install?gcc?make?freeglut3
-
dev
在Windows下,GCC的解決方案有很多,我使用的是MinGW,可以下載DevCpp,它包括MinGW和一個(gè)C/C++的IDE,因?yàn)槲沂褂胑clipse作為IDE,所以,我使用MinGW的官方開發(fā)工具。到MinGW的官方網(wǎng)站上下載以下包:
binutils
gcc-core
gcc-g++
mingw32-make
mingw-runtime
mingw-utils
w32api
最后再下載調(diào)試器gdb。
為了能使用Mark Kilgard提供的glut庫(kù)(http://www.xmission.com/~nate/glut.html),盡量下載最新的官方版本,該glut庫(kù)要求binutils版本至少是2.16.91。
http://www.mingw.org/MinGWiki/index.php/Glut頁(yè)面解釋了在MinGW下使用Mark Kilgard的GLUT庫(kù)會(huì)出現(xiàn)的問題及解決的辦法。
至于Eclipse和CDT的安裝很簡(jiǎn)單,在Linux下和Windows下也沒什么區(qū)別。需要注意的是:為了讓Eclipse能是別到GCC,需要吧GCC的bin目錄加入系統(tǒng)路徑PATH中,eclipse會(huì)自動(dòng)查找make.exe,而MinGW的Make程序名叫mingw32-make.exe,所以,要么把mingw32-make.exe更名為make.exe,要么指定eclipse使用mingw32-make.exe進(jìn)行make。
最近發(fā)現(xiàn)國(guó)內(nèi)的debian安裝源服務(wù)器很不穩(wěn)定,想換一個(gè)速度快的,結(jié)果apt-get update運(yùn)行失敗后,把安裝源換回來(lái)再重新安裝其他包時(shí)都會(huì)報(bào)包依賴錯(cuò),apt-get update好像起不了作用。研究后發(fā)現(xiàn),刪除/var/cache/apt/下的兩個(gè)bin文件,再apt-get update就可以了。
知道java5.0中中文顯示的解決辦法是在jre/lib/fonts/目錄下建立一個(gè)fallback目錄,然后把中文字體連接進(jìn)去就可以了,但我找樂半天都沒找到這個(gè)目錄,最后發(fā)現(xiàn)用update-alternative --config java指令便可以得到這個(gè)目錄的信息。
要讓qemu虛擬機(jī)和宿主機(jī)位于同一個(gè)網(wǎng)絡(luò)中被該網(wǎng)絡(luò)的其他機(jī)器訪問,就需要使用TUN/TAP的網(wǎng)絡(luò)方式來(lái)啟動(dòng)qemu虛擬機(jī)。具體的啟動(dòng)指令是:
qemu -m 192 -hda disk.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=/etc/qemu-ifup
如果是在WindowsXP下面,就不需要script=/etc/qemu-ifup這個(gè)啟動(dòng)腳本了,直接將tap0換成網(wǎng)橋的名字即可。
第一步,建立一個(gè)虛擬網(wǎng)絡(luò)接口。
在linux下:
1?#?mknod?/dev/net/tun?c?10?200
在Windows下,有開源的虛擬網(wǎng)卡軟件,找一個(gè)來(lái)裝好就行了。
第二步,建立網(wǎng)橋。
在linux下:
修改/etc/network/interface配置文件。此處建立一個(gè)名為br0的網(wǎng)橋,先橋接上eth0,在啟動(dòng)qemu時(shí),再橋接上tap0。
?1?#?/etc/network/interface
?2?#?This?file?describes?the?network?interfaces?available?on?your?system
?3?#?and?how?to?activate?them.?For?more?information,?see?interfaces(5).
?4?
?5?#?The?loopback?network?interface
?6?auto?lo
?7?iface?lo?inet?loopback
?8?
?9?#?The?bridge?network?interface(s)
10?auto?br0
11?iface?br0?inet?static
12?address?192.168.1.2
13?network?192.168.1.0
14?netmask?255.255.255.0
15?broadcast?192.168.1.255
16?gateway?192.168.1.1
17?bridge_ports?eth0
18?bridge_fd?9
19?bridge_hello?2
20?bridge_maxage?12
21?bridge_stp?off
在windowsXP下,在網(wǎng)絡(luò)屬性窗口中,直接將要橋接的兩塊網(wǎng)卡選中,然后點(diǎn)擊鼠標(biāo)右鍵,選擇“橋”菜單即完成橋接。
第三步,建立qemu-ifup腳本啟動(dòng)qemu時(shí)調(diào)用。
在linux下:
建立/etc/qemu-ifup腳本文件(參見qemu指令的-net參數(shù))
1?#!/bin/sh
2?
3?sudo?/sbin/ifconfig?$1?0.0.0.0?promisc?up
4?sudo?/usr/sbin/brctl?addif?br0?$1
5?sleep?2
WindowsXP在下不用這個(gè)腳本,直接把-net的ifname參數(shù)設(shè)為網(wǎng)橋的名字即可。
趁這兩天有點(diǎn)空,終于把本本重裝了。
一切都還順利,只有在安裝Netbeans時(shí)需要注意必須先安裝bc包才能安裝Netbeans。
周末和幾個(gè)驢友去了趟都江堰,從東光小區(qū)出發(fā)到達(dá)目的地共80公里,行駛時(shí)間4小時(shí),感覺不錯(cuò),美得達(dá)的車就是好。
好幾天來(lái)有個(gè)問題一個(gè)困惑著我。
在Eclipse里使用WTP插件時(shí),總是不能正確的增加一個(gè)Server。當(dāng)點(diǎn)擊“WTP Server Actions”工具圖標(biāo)時(shí),Eclipse響應(yīng)速度極慢,并且,整個(gè)WTP相關(guān)的圖標(biāo)都會(huì)從工具欄上消失掉。
開始我以為這個(gè)問題是由于各個(gè)插件使用的WTP版本不一致造成的。由于我主要是想使用Exadel Studio 3.5,所以,我按照Exadel網(wǎng)站上的方法,去掉了其它插件的WTP(主要是JBossIDE和WTP本身),仍然不能解決該問題,于是我準(zhǔn)備將錯(cuò)誤信息發(fā)送給Exadel。
令我吃驚的是,當(dāng)我使用-debug參數(shù)啟動(dòng)Eclipse時(shí),一切都正常!我能通過WTP Server Actions圖標(biāo)創(chuàng)建Web服務(wù)器,也能通過其它WTP圖標(biāo)啟動(dòng)、停止和部署應(yīng)用。當(dāng)我去掉-debug參數(shù)時(shí),問題又回來(lái)了!看上去非常的不可思議。當(dāng)我仔細(xì)觀察使用與不使用-debug參數(shù)時(shí)Eclipse的區(qū)別時(shí),終于發(fā)現(xiàn)當(dāng)使用-debug參數(shù)時(shí),Eclipse沒有使用Windows主題!難道會(huì)與這個(gè)相關(guān)?看上去風(fēng)馬牛不相及,不過我還是準(zhǔn)備試一下。我把%JAVA_HOME%\bin下的javaw.exe.manifest文件刪掉,重新啟動(dòng),一切OK了!
不可思議!于此我得出的結(jié)論是:不能只看重外表!
剛剛在我的Debian Testing下面比較了一下VMware與qemu安裝Windows2000Professional的速度。
我的機(jī)器配置是Compaq Presario2500,512M內(nèi)存,其中32M劃給顯存。P4 2.4G,ATI340顯卡。Linux內(nèi)核版本為2.6.12-1-386。
為了保持可比性,我的虛擬機(jī)都使用256M內(nèi)存,4G硬盤,NAT方式接入網(wǎng)絡(luò)。
先
在qemu7.0(沒有使用kqemu加速器)下安裝,使用的是雨薇在線提供的無(wú)值守安裝方式(安裝完成后會(huì)打上一些系統(tǒng)補(bǔ)丁),整個(gè)過程(開始安裝到出
現(xiàn)Windows開始菜單)耗時(shí)1小時(shí)48分鐘。然后在VMWare5.0下安裝,第一次安裝到檢測(cè)設(shè)備時(shí)死機(jī),然后改成使用Bridge方式,整個(gè)安裝
耗時(shí)28分鐘,性能真的是不可相提并論啊。
在一些輔助功能上,VMWare好象也明顯好用得多,比如,VMWare下能使用我的視頻頭等USB設(shè)備,而qemu我還不知道怎么掛上USB設(shè)備。對(duì)顯
卡的模擬VMWare更是沒話說(shuō),最關(guān)鍵的時(shí)全屏?xí)r由于支持“自動(dòng)匹配客戶機(jī)”,所以在我的液晶下就不會(huì)出現(xiàn)花屏,qemu好象沒辦法。
看來(lái)自由軟件要走的路還很長(zhǎng)。
1、工作環(huán)境全面轉(zhuǎn)向Linux。
2、深入學(xué)習(xí)設(shè)計(jì)模式。
3、深入學(xué)習(xí)Hibernate,并用它做一個(gè)實(shí)際的項(xiàng)目。
4、深入學(xué)習(xí)JSF,并用它做一個(gè)實(shí)際的項(xiàng)目。
5、復(fù)習(xí)C++,尤其是對(duì)泛型加強(qiáng)了解,并與Java泛型對(duì)照學(xué)習(xí)。
6、嚴(yán)格遵守格律寫詩(shī),盡量使用平水韻。
7、能流暢的演奏阿宮回憶。
平安夜,我生日的前一天,從長(zhǎng)沙回到成都,走進(jìn)住所,面對(duì)空蕩蕩的房間,感覺就象從一個(gè)客棧到了另一個(gè)客棧。
最近在幾個(gè)Debian版本間(Sarge、Etch、SID和Ubuntu5.10)做了些試驗(yàn),感覺Testing還是不太穩(wěn)定,尤其是GNOME的任務(wù)條老是容易死掉,非常郁悶!不過我還是打算用這個(gè)版本,只要C++和Java的開發(fā)平臺(tái)能夠穩(wěn)定下來(lái)就沒什麼,至於X窗口,還是用XFCE吧。
Ubuntu的確是個(gè)不錯(cuò)的Linux發(fā)行版,感覺應(yīng)該比RedHat更有前途(其實(shí)對(duì)它的偏好是因?yàn)槠浠禗ebian,愛屋及烏了吧)。以前安裝Ubuntu時(shí),不知道可以使用server參數(shù)來(lái)只安裝最基本的包。不過Ubuntu到是很穩(wěn)定,至少不象tesing和sid那樣容易死掉。
有空的話,準(zhǔn)備玩玩免免和LFS,不過估計(jì)有這閒時(shí)間的可能性很小。
在公司裡老板還在要我用Powerbuilder寫程序,因此完全放棄Windows是不可能的,最近試驗(yàn)了一下qemu,其性能實(shí)在不敢恭維,使用VMWare就好得多。
晨起,略有雨氣,忽欲飲,無(wú)酒,唯詩(shī)爾。大夢(mèng)隨風(fēng)去
清歡捲雨來(lái)
欲醉三千日
神魂到蓬萊
把jdk1.5.0_06裝上了,不需要使用kernel-headers,不知道是記錯(cuò)了還是現(xiàn)在改正了。
盡量在xfce下干活吧,快捷些,感覺上也更象高手。裝了個(gè)KDE下的瀏覽器──Konqueror,雖然大,感覺比FireFox要爽多了,基本上想要的功能它都有。而且是集文件游覽器和Web瀏覽器于一身。
IDEA也裝上了,今天Liuzy推薦我用這個(gè)東東來(lái)做Java開發(fā),以前一直用Eclipse,前兩天想換換口味,于是下了netbeans5.0 beta2來(lái)試試,感覺還可以,至少集成了JSF和struts框架,eclipse下這些框架的免費(fèi)插件可不太好用。開發(fā)Web應(yīng)用也比Eclipse好用些。不過,IDEA這東東我還沒有玩通,感覺除了書寫代碼很爽外,也沒有多少過人之處,最重要的是不免費(fèi),用起總是于心不甘。
今天把Debian換成了最的tesing版本,內(nèi)核為2.6.12-1-686,可是還沒有找到有哪個(gè)源上有這個(gè)版本的headers,我記得以前安裝java包時(shí)是需要這個(gè)包的,不知道現(xiàn)在是否也一樣,明天準(zhǔn)備裝jdk-1.5.0_06試試。
第一次在Linux下用Firefox來(lái)書寫這個(gè)日志,感覺很不錯(cuò)。
今天把Ubuntu下下來(lái)看看了,版本是5.10,結(jié)果很失望,完全不象Debian那樣自由,安裝根本沒有選擇,一股腦的全都裝上去了,安全花了近一個(gè)鍾頭,啟動(dòng)速度也很慢,算了,還是裝回Debian好了。