New

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            21 Posts :: 0 Stories :: 4 Comments :: 0 Trackbacks

          2011年11月14日 #

          值得一看的一堆語錄

          昨天在某空間閑逛就轉(zhuǎn)載了這個(gè),結(jié)果被瘋轉(zhuǎn)!現(xiàn)在,保存到博客上,分享給更多的人。

          同時(shí),分享一個(gè)《喬布斯在斯坦福演講》

          1、98年 馬化騰等一伙湊了50萬創(chuàng)辦了騰訊 沒買房;98年 史玉柱 借了50萬搞腦白金 沒買房;99年 丁磊用50萬創(chuàng)辦163.com 沒買房;99年 陳天橋炒股賺了50萬 創(chuàng)辦盛大 沒買房;99年 馬云等18人湊了50萬 注冊阿里巴巴 沒買房。如果當(dāng)年他們用這50萬買了房,現(xiàn)在估計(jì)還在還著銀行的貸款吧。

          2、年輕的我們必須懂得:1、你不勇敢,沒人替你堅(jiān)強(qiáng)。2、沒有傘的孩子必須努力奔跑!3、自己選擇的路、跪著也要把它走完。4、不要生氣要爭氣, 不要看破要突破,不要嫉妒要欣賞,不要拖延要積極,不要心動要行動。5、寧愿跑起來被拌倒無數(shù)次,也不愿規(guī)規(guī)矩矩走一輩子。就算跌倒也要豪邁的笑

          3、人生三大遺憾:不會選擇,不堅(jiān)持選擇,不斷地選擇;人生三不斗:不與君子斗名,不與小人斗利,不與天地斗巧;人生三修練:看得透想得開,拿得起 放得下,立得正行得穩(wěn);人生三大陷阱:大意,輕信,貪婪;人生三大悲哀:遇良師不學(xué),遇良友不交,遇良機(jī)不握。人生三大不爭:不與領(lǐng)導(dǎo)爭鋒,不與同事爭 寵,不與下級爭功

          4、一個(gè)人,如果你不逼自己一把,你根本不知道自己有多優(yōu)秀。一個(gè)人,想要優(yōu)秀,你必須要接受挑戰(zhàn);一個(gè)人,你想要盡快優(yōu)秀,就要去尋找挑戰(zhàn)。一個(gè)人,敢聽真話,需要勇氣;一個(gè)人敢說真話,需要魄力。一個(gè)人的知識,通過學(xué)習(xí)可以得到;一個(gè)人的成長,必須通過磨練。

          5、【最溫暖的八種食物】①早上醒后來的一個(gè)煎蛋;②上班出門前塞在包里的一個(gè)蘋果;③加班深夜回家后的一碗熱湯;④睡覺前的一杯牛奶;⑤伏案工作時(shí)的一杯熱茶;⑥生病臥床時(shí)的一碗白粥;⑦喝悶酒的時(shí)候一碟小菜;⑧酒醒后的一碗清湯面。《你吃到過幾樣?》

          6、網(wǎng)易CEO丁磊說:“千萬不要以為我是抱著一個(gè)偉大的理想去創(chuàng)辦一個(gè)偉大的公司,我從來沒有遠(yuǎn)大的理想,也沒有想要成為一個(gè)很有錢的人。創(chuàng)辦網(wǎng) 易時(shí)我只是想做一個(gè)小老板,就想有個(gè)房子有輛汽車,不用準(zhǔn)時(shí)上班,可以睡懶覺。 我的夢想也是那么簡單。”丁磊的話很實(shí)在。但是,現(xiàn)在創(chuàng)業(yè)已經(jīng)不是那么簡單了。

          7、人脈中需有的十種職業(yè)人:1 票販子、 2旅行社、3律師、4 人才市場/獵頭公司、 4 銀行、5 當(dāng)?shù)毓珓?wù)人員/警察 、6 名人、7 保險(xiǎn)/金融/理財(cái)專家、8 維修人員、9 媒體聯(lián)絡(luò)人、10 醫(yī)生/護(hù)士/養(yǎng)生專家。《你認(rèn)識這十種人嗎?用心經(jīng)營您的人脈關(guān)系吧!》

          8、【做人的底線】(1) 不做第三者,即使再喜歡(2) 騙我可以,如果被我知道超過兩次,請你有多遠(yuǎn)滾多遠(yuǎn)(3) 如果你拿我不當(dāng)回事,我會以同樣方式對你(4) 我可以裝傻,但別以為我真傻(5) 我可以容忍,但別超過我的底線(6) 我不是沒脾氣,只是不輕易發(fā)脾氣(7) 任何真話,我都能接受。

          9、15歲覺得游泳難,放棄游泳,到18歲遇到一個(gè)你喜歡的人約你去游泳,你只好說“我不會耶”。18歲覺得英文難,放棄英文,28歲出現(xiàn)一個(gè)很棒 但要會英文的工作,你只好說“我不會耶”。人生前期越嫌麻煩,越懶得學(xué),后來就越可能錯(cuò)過讓你動心的人和事,錯(cuò)過新風(fēng)景。—蔡康永

          10、25歲的英國士兵Barry Delaney穿著鮮亮的綠色吊帶短裙和粉紅腿套,在同袍好友Kevin Elliott的葬禮上哭的一塌糊涂,他倆是同在阿富汗執(zhí)行任務(wù)的好友.他們之前有一個(gè)約定:無論誰先不幸西歸,另一個(gè)都要穿女裝亮相對方的葬禮,為那里 灰暗的悲傷帶去一絲亮色,很感人,一諾千金。《偉大的友誼,你有這樣的朋友么?》

          11、慢慢成熟的標(biāo)志:1早上無論多困,也會馬上起床上班;2喜歡吃家常便飯多于外面的餐館;3喜歡隱身,網(wǎng)絡(luò)簽名長時(shí)間不更改;4喜歡看新聞多于 看八卦;5打電話給朋友的次數(shù)少了;6可以讓你開心的人或事,越來越少了;7沒結(jié)果的事情,漸漸就少做了;8低落的時(shí)候選擇一個(gè)人呆著。

          12、美國舊金山有一老頭查克費(fèi)尼,穿舊衣服,戴爛手表,住出租屋,擠公交車。他為美國教育捐出了近20億美金,還希望死前把僅有的40億美金全部 捐獻(xiàn)給社會。在北京有個(gè)大富豪陳五喜,開豪車,住華宅,吃大餐,手上戴大鉆戒,投資房地產(chǎn),同時(shí)還在民政部門領(lǐng)取低保,8年間共得到10萬元的社會救助。 《中美差異》

          13、1931年的1月30日是世界現(xiàn)代史上災(zāi)難的一天,阿道夫·希特勒被任命為德國總理。他的名言:“消滅一個(gè)民族,首先瓦解它的文化;要瓦解它 的文化,首先消滅承載它的語言;要消滅這種語言,首先先從他們的學(xué)校里下手。”,當(dāng)今的中國大學(xué)里無論什么專業(yè),英語是必修課,漢語卻不是。

          14、尼古拉斯.科波拉,他的親叔叔叫弗朗西斯.科波拉,名滿天下的《教父》的導(dǎo)演。這個(gè)小伙子后來去好萊塢混,為了以自己的實(shí)力打天下,故意改名為尼古拉斯.凱奇。不想沾任何叔叔的光。中美文化的差異就在于此。《我爸是李剛》

          15、讓你成熟至少5歲的8句話】1、如果你不喜歡現(xiàn)在的工作,要么辭職不干,要么閉嘴不言。2、學(xué)會忍受孤獨(dú)。3、不要像玻璃那樣脆弱,做個(gè)內(nèi)心 強(qiáng)大的人。4、管住自己的嘴巴。5、會創(chuàng)造機(jī)會。6、若電話老是不響,你該打出去。7、不要草率結(jié)婚。8、寫出你一生要做的事情,把單子放在皮夾里,經(jīng)常 拿出來看。

          16、今年,年僅26歲的Facebook的創(chuàng)始人馬克·扎克伯格,以40 億美元身價(jià)登上2010 福布斯全球最年輕富豪榜榜首。目前已把自己過半財(cái)產(chǎn)捐贈給慈善事業(yè)。扎克伯格擁有億萬身家,但他至今仍和華裔女友普莉希拉·陳生活在一套租來的住房里,每 天走路或騎自行車上班。

          17、澳大利亞老板帕爾默,他說:人每次只能睡一張床,吃一頓飯,駕一輛車,跟一個(gè)女人一起,所以我決定分一些給大家。為了感謝員工幫助他將企業(yè)扭 虧為盈,他送給員工55輛奔馳,讓750名員工出國度假,宴請2000名員工及家屬。員工們興奮的說,這樣的老板,令我傾120%力量去工作。《神奇的領(lǐng) 導(dǎo)力,無處不在》

          18、1992年一艘從中國出發(fā)的貨船在太平洋上遭遇強(qiáng)烈風(fēng)暴,船上一個(gè)裝滿2.9萬只塑料玩具鴨的集裝箱墜入大海。令人難以置信的是,其中1萬多 只玩具鴨組成的“鴨子艦隊(duì)”在海洋上漂流了14年之后,竟抵達(dá)英國海岸。后來,這些鴨子售價(jià)激漲百倍。一個(gè)人的價(jià)值并不在其出身,而在于他譜寫什么樣的人 生履歷。。

          19、80后/90后的通病:1、近視;2、月光族;3、喜歡Money;4、從不鍛煉身體;5、 一日三餐沒有規(guī)律;6、路盲,沒有方向感;7、搞不清楚自己的血型;8、有一顆狠宅狠宅的心;9、做事情都是三分鐘熱度;10、經(jīng)常午夜12點(diǎn)以后才睡 覺。《三條沒有你就是神了》

          20、母親一生的六個(gè)謊言:1.(童年時(shí))快吃吧,我不餓;2.(少年時(shí),深夜做針線活)快睡吧,我不困;3.(高考路上)快喝吧,我不渴;4. (參加工作,母親生病時(shí))你趕快去工作吧,我很好;5.(給母親寄錢)你用,我有錢;6.(買房接她住)城里,我不習(xí)慣。愿天下的母親健康長壽!《到了畢 業(yè)的這個(gè)時(shí)候,更能體會媽媽的良苦用心,好好去愛她!》

          21、【永遠(yuǎn)都不要做的事】1,跟知己上床 2、和情人結(jié)婚 3、把同事當(dāng)成朋友4、到朋友公司打工 5、在上司面前知無不言 6、輕信上司的許諾 7、喜怒哀樂都掛在臉上 8、在人堆里大聲講手機(jī) 9、習(xí)慣于給自己找借口 10、超車過去,看開著車有著窈窕背影的MM的臉 11、對MM的"字信以為真 12、指望前女友回心轉(zhuǎn)意。

          22、【成功者的習(xí)慣】1.微笑。2.氣質(zhì)純樸。3.不向朋友借錢。4.背后說別人好話。5.聽到某人說別人壞話時(shí)只微笑。6.過去的事不讓人全知 道。7. 尊敬不喜歡你的人。9.對事無情,對人有情。10.多做自我批評。11.為別人喝彩。12.感恩。13.學(xué)會聆聽。14.說話時(shí)常用我們開頭。15.少說 話。16.喜歡自己。

          22、可敬可畏:1.日本電視臺用中文進(jìn)行廣播,通知人們地震情況、躲避方式;2.每個(gè)家庭都有急救小包,包括藥物、手搖式發(fā)電收音機(jī);3、9級大 震后東京建筑幾乎安然無恙,尤其是人們避難時(shí)都井然有序的站在道路兩側(cè)盡量不阻礙交通,撤離后無一垃圾。日本是個(gè)危機(jī)意識、集體主義、紀(jì)律性極強(qiáng)的國家!

          23、【建立人脈的15個(gè)提示】1、學(xué)會換位思考;2、學(xué)會適應(yīng)環(huán)境;3、學(xué)會大方;4、學(xué)會低調(diào);5、嘴要甜;6、有禮貌;7、言多必失;8、學(xué) 會感恩;9、遵守時(shí)間;10、信守諾言;11、學(xué)會忍耐;12、有一顆平常心;13、學(xué)會贊揚(yáng)別人;14、待上以敬,待下以寬;15、經(jīng)常檢討自己。

          24、55年前,就讀于浙江大學(xué)的法國女子丹尼和中國學(xué)生袁迪寶相戀,但袁已婚了。1956年,丹尼傷痛中離開了中國。最初還通信,但慢慢就斷了來 往。去年初,袁試探著給丹尼寫信,竟然回復(fù)了。9月,兩人重逢第三天在廈門結(jié)婚,83歲的丹妮第一次穿上了婚紗。愛,它確實(shí)存在。《我相信愛情,你呢?》

          25、讓你少奮斗10年的工作經(jīng)驗(yàn):1不要停留在心靈的舒適區(qū)域;2不要把好像、大概、晚些時(shí)候、或者、說不定之類的話放在嘴邊;3不要拖延工 作;4不要認(rèn)為理論上可以實(shí)施就大功告成了;5不要讓別人等你;6不要認(rèn)為細(xì)節(jié)不重要;7不要表現(xiàn)得消極;8不要把改善工作能力僅寄托在公司培訓(xùn)上;9不 要推卸責(zé)任。

          26、人平均一輩子只有7次決定人生走向的機(jī)會,兩次機(jī)會間相隔約7年,大概25歲后開始出現(xiàn)機(jī)會,75歲以后就不會有什么機(jī)會了。這50年里的7 次機(jī)會,第一次不易抓到,因?yàn)樘贻p,最后一次也不用抓,因?yàn)樘希@樣只剩5次了,這5次機(jī)會里又有兩次不小心錯(cuò)過,所以實(shí)際上只有3次機(jī)會了。——哈 佛的一項(xiàng)調(diào)查報(bào)告

          27、職場情商訓(xùn)練7法:1、把看不順的人看順;2、把看不起的人看起;3、把不想做的事做好;4、把想不通的事想通;5、把快罵出的話收回;6、 把咽不下氣的咽下;7、把想放縱的心收住;——你不需每時(shí)每刻這樣做,但這樣多做幾回,你就會:1、情商高了2、職位升了3、工資漲了4、人爽了。

          28、泰勒語錄:(1)我擁有一個(gè)女人的身體和一個(gè)孩子的情感。(2)我只和與我結(jié)婚的男人上過床。有多少女人敢這么說?(3)如果有人笨到花 100萬美元為我拍張照片,我當(dāng)然不會笨到拒絕他。(4) 成功是一種了不起的除臭劑。它能帶走所有你過去的味道。(5)我不會假裝是個(gè)平凡的家庭主婦。

          29、她原系徐州女排隊(duì)員,22歲嫁給50歲的cherry獲綠卡后離婚、經(jīng)新男友引薦入讀耶魯大學(xué)。96年旅行結(jié)識同座的starTV副總,經(jīng)推 薦在香港實(shí)習(xí)。97年晚宴她將一杯紅酒灑在“傳媒大亨”默多克身上,3年后他不顧家人反對而離婚并迎娶她。4年后她以高科技為他生下兩個(gè)繼承數(shù)十億美金的 女兒。她就是鄧文迪。《運(yùn)氣總是留給有預(yù)謀的人。。》

          30、我年輕時(shí)曾與我們州最漂亮的女孩約會,但最后沒有成功。我聽說她后來離過三次婚,如果我們當(dāng)時(shí)真在一起,我都無法想象未來會怎么樣。所以,其 實(shí)你人生中最重要的決定是跟什么人結(jié)婚!在選擇伴侶上,如果你錯(cuò)了,將讓你損失很多。而且,損失不僅僅是金錢上的。(BY巴菲特:結(jié)婚才是人生最大投資)

          31、蓋茨39歲成世界首富,陳天橋31歲成中國首富,孫中山28歲創(chuàng)辦興中會,王然23歲當(dāng)局長,孫權(quán)19歲據(jù)江東,丁俊暉15歲拿世界冠軍,鄧波兒7歲拿奧斯卡,貝多芬4歲開始作曲,葫蘆娃剛出生就打妖怪。你說我們急不急。《我確實(shí)著急了!》

          32、理查森,男,紐約。從1984年起連續(xù)五次投資失敗。2007徹底破產(chǎn),妻離子散,朋友消遁,唯有一條名叫JOOY的狗與其不離不棄,忠伴左 右,陪理查森一同在紐約的風(fēng)雨街頭乞討。從“JOOY”安詳恬靜的睡姿中看得出它對主人的無限信任和依靠。有的人,在滄海變成桑田時(shí),表現(xiàn)得還不如一條 狗。《認(rèn)識的人多了,我就喜歡了狗》

          33、≪教父≫經(jīng)典臺詞:1、不要讓別人知道你的想法。 2、當(dāng)你說不時(shí),你要使不聽上去象是一樣好聽。 3、讓朋友低估你的優(yōu)點(diǎn),讓敵人高估你的缺點(diǎn)。4、痛苦不象死亡那樣無可挽回!5、如果你沒有時(shí)間和家人在一起,你就永遠(yuǎn)無法成為真正的男人。 6、永遠(yuǎn)不要恨你的敵人 ,因?yàn)檫@會影響你的判斷力

          34、覺得自己做得到和做不到,其實(shí)只在一念之間。自己要先看得起自己,別人才會看得起你。一切偉大的行動和思想,都有一個(gè)微不足道的開始。有理想 在的地方,地獄就是天堂;有希望在的地方,痛苦也成歡樂。樂觀者在困難中看到機(jī)會;悲觀者在機(jī)會中看到苦難。理想的路總是為有信心的人預(yù)備著。--﹣李嘉 誠。

          35、女名叫安-德納姆,生在美國堪薩斯。18歲的安在異族通婚非法的年代嫁給了一個(gè)非洲黑人留學(xué)生。后來,安和丈夫離婚成了單身母親,她靠食品優(yōu) 惠券生活,是美國醫(yī)保系統(tǒng)受害者,在重病時(shí)懇求保險(xiǎn)公司賠付。然而她的孩子,圖片里裝扮成海盜的小孩,日后成了美利堅(jiān)合眾國第44任總統(tǒng),巴拉克-奧巴 馬。《不要因?yàn)槌錾矶床黄鹑魏稳耍 ?/p>

          36、阿米爾汗,8歲時(shí)出演一部轟動印度的電影,是公認(rèn)的童星,長大后卻一心打網(wǎng)球并獲得過網(wǎng)球冠軍。21歲愛上鄰居家女孩,由于宗教原因兩人決定 私奔,現(xiàn)在過著幸福美滿的生活。他是演員/制片人/導(dǎo)演。81屆奧斯卡最佳影片《貧民窟的百萬富翁》就是他擔(dān)當(dāng)?shù)闹破?009年一部《三個(gè)白癡》震驚全 球,他45歲。《你相信堅(jiān)持的力量么?》

          37、陳佩斯,因?yàn)檠胍暢霭嫠男∑范唤o錢,較真打官司,遂被徹底封殺。此后陳消失,陳夫婦上山種樹,臉朝黃土背朝天,兩年獲利30萬。陳佩斯哭 了,還想再演戲,可依舊被封殺,就砸30萬改演話劇,第一部舞臺喜劇《托兒》,在全國各地連續(xù)演出達(dá)120場,票房近4000萬元,創(chuàng)造了當(dāng)今話劇界無法 超越的神話。《我就想說一句話:是金子在哪都發(fā)光。。。》

          38、她,37歲,癌癥晚期。他,42歲,為籌錢給她治病,盜竊一輛電動自行車而入獄,刑期4年。2010年11月12日,他兩人在監(jiān)獄里舉行了簡 單的婚禮,但這場童話般的婚禮,卻讓在場的數(shù)百位嘉賓感動得潸然淚下。偷輛電動車刑期4年,李剛兒子撞死人才3年。無語!一條人命還不如架電動單車。《生 活在這個(gè)讓人苦惱的社會。。。》

          39、天下只有兩種人。比如一串葡萄到手,一種人挑最好的先吃,另一種人把最好的留到最后吃。照例第一種人應(yīng)該樂觀,因?yàn)樗砍砸活w都是吃剩的葡萄 里最好的;第二種人應(yīng)該悲觀,因?yàn)樗砍砸活w都是吃剩的葡萄里最壞的。不過事實(shí)卻適得其反,緣故是第二種人還有希望,第一種人只有回憶。——錢鐘書。《你 是哪種人?》

          40、他出身于書香門第,父親是大學(xué)教授。他為愛妻,20年來從不上CCAV;他是個(gè)好爸爸;他顧家,厭惡應(yīng)酬,滴酒不沾;他才華橫溢,琴棋書畫樣 樣精通,學(xué)生時(shí)是體育全能,探戈高手;他飽讀詩書,季羨林贊他可勝任北大的研究生導(dǎo)師,曾與錢鐘書是忘年之交,他說他只是個(gè)戲子。他就是陳道明。一個(gè)很給 力的男人。

          41、舊上海黑社會老大杜月笙的經(jīng)典語錄:1、做人有三碗面最難吃:人面、場面、情面。2、頭等人,有本事沒脾氣;二等人,有本事有脾氣;末等人, 沒本事大脾氣。3、人可以不識字,但不能不識人。4、錢財(cái)用的完,交情吃不光。所以別人存錢,我存交情。存錢再多不過金山銀海,交情用起來好比天地難量。

          42、成功根本沒有秘訣,如果有的話,就只 有兩個(gè):第一個(gè)是堅(jiān)持到底,永不放棄;第二個(gè)就是當(dāng)你想放棄的時(shí)候,請回過頭來再照著第一個(gè)秘訣去做。——丘吉爾

          43、他,21歲,生意失敗。22歲,州議員落選。24歲,生意再敗。26歲,愛侶去世。27歲,一度精神崩潰。36歲,眾議員落選。45歲,參議 員落選。47歲,提名副總統(tǒng)落選。49歲時(shí),參議員落選。52歲,當(dāng)選美國第十六任總統(tǒng)。他叫林肯,堅(jiān)信上帝的延遲,并不是上帝的拒絕,最終成就不凡。

          44、善良的蘇格蘭農(nóng)夫從糞池救出一個(gè)小男孩,男孩的紳士父親酬謝,農(nóng)夫拒。紳士說:讓我們簽個(gè)協(xié)議,我?guī)ё吣愕暮⒆樱o他最好的教育,農(nóng)夫允。農(nóng) 夫的孩子后來發(fā)明了青霉素,獲得諾貝爾獎。數(shù)年后,紳士的兒子得了肺炎,青霉素治好了他。這兩個(gè)孩子分別是弗萊明和丘吉爾。 《冥冥之中,自有天意》

          posted @ 2011-12-15 13:36 H.C 閱讀(374) | 評論 (0)編輯 收藏

          最簡單的方法就是下載一個(gè)buildtoolchain.tar.gz安裝就行了,有時(shí)候就是想自己親身體驗(yàn)一下安裝定制過程,Linux的樂趣也在這點(diǎn)。從網(wǎng)上搜集了些資料,以備日后查閱。    
          如何為嵌入式開發(fā)建立交叉編譯環(huán)境


           


            
           
          < language=java type=text/java script>      
           
           


           
          梁元恩 , 軟件工程師


          2005 年 9 月

                  在進(jìn)行嵌入式開發(fā)之前,首先要建立一個(gè)交叉編譯環(huán)境,這是一套編譯器、連接器和libc庫等組成的開發(fā)環(huán)境。文章通過一個(gè)具體的例子說明了這些嵌入式交叉編譯開發(fā)工具的制作過程。

          隨著消費(fèi)類電子產(chǎn)品的大量開發(fā)和應(yīng)用和Linux操作系統(tǒng)的不斷健壯和強(qiáng)大,嵌入式系統(tǒng)越來越多的進(jìn)入人們的生活之中,應(yīng)用范圍越來越廣。

          在裁減和定制Linux,運(yùn)用于你的嵌入式系統(tǒng)之前,由于一般嵌入式開發(fā)系統(tǒng)存儲大小有限,通常你都要在你的強(qiáng)大的pc機(jī)上建立一個(gè)用于目標(biāo)機(jī)的交 叉編譯環(huán)境。這是一個(gè)由編譯器、連接器和解釋器組成的綜合開發(fā)環(huán)境。交叉編譯工具主要由 binutils、gcc 和 glibc 幾個(gè)部分組成。有時(shí)出于減小 libc 庫大小的考慮,你也可以用別的 c 庫來代替 glibc,例如 uClibc、dietlibc 和 newlib。建立一個(gè)交叉編譯工具鏈?zhǔn)且粋€(gè)相當(dāng)復(fù)雜的過程,如果你不想自己經(jīng)歷復(fù)雜的編譯過程,網(wǎng)上有一些編譯好的可用的交叉編譯工具鏈可以下載。

          下面我們將以建立針對arm的交叉編譯開發(fā)環(huán)境為例來解說整個(gè)過程,其他的體系結(jié)構(gòu)與這個(gè)相類似,只要作一些對應(yīng)的改動。我的開發(fā)環(huán)境是,宿主機(jī) i386-redhat-7.2,目標(biāo)機(jī) arm。

          這個(gè)過程如下

          1. 下載源文件、補(bǔ)丁和建立編譯的目錄

          2. 建立內(nèi)核頭文件

          3. 建立二進(jìn)制工具(binutils)

          4. 建立初始編譯器(bootstrap gcc)

          5. 建立c庫(glibc)

          6. 建立全套編譯器(full gcc)

          下載源文件、補(bǔ)丁和建立編譯的目錄

          1. 選定軟件版本號

          選擇軟件版本號時(shí),先看看glibc源代碼中的INSTALL文件。那里列舉了該版本的glibc編譯時(shí)所需的binutils 和gcc的版本號。例如在 glibc-2.2.3/INSTALL 文件中推薦 gcc 用 2.95以上,binutils 用 2.10.1 以上版本。

          我選的各個(gè)軟件的版本是:

          linux-2.4.21+rmk2
          binutils-2.10.1
          gcc-2.95.3
          glibc-2.2.3
          glibc-linuxthreads-2.2.3

          如果你選的glibc的版本號低于2.2,你還要下載一個(gè)叫g(shù)libc-crypt的文件,例如glibc-crypt-2.1.tar.gz。 Linux 內(nèi)核你可以從www.kernel.org 或它的鏡像下載。

          Binutils、gcc和glibc你可以從FSF的FTP站點(diǎn)ftp://ftp.gun.org/gnu/ 或它的鏡像去下載。在編譯glibc時(shí),要用到 Linux 內(nèi)核中的 include 目錄的內(nèi)核頭文件。如果你發(fā)現(xiàn)有變量沒有定義而導(dǎo)致編譯失敗,你就改變你的內(nèi)核版本號。例如我開始用linux-2.4.25+vrs2,編譯 glibc-2.2.3 時(shí)報(bào) BUS_ISA 沒定義,后來發(fā)現(xiàn)在 2.4.23 開始它的名字被改為 CTL_BUS_ISA。如果你沒有完全的把握保證你改的內(nèi)核改完全了,就不要動內(nèi)核,而是把你的 Linux 內(nèi)核的版本號降低或升高,來適應(yīng) glibc。

          Gcc 的版本號,推薦用 gcc-2.95 以上的。太老的版本編譯可能會出問題。Gcc-2.95.3 是一個(gè)比較穩(wěn)定的版本,也是內(nèi)核開發(fā)人員推薦用的一個(gè) gcc 版本。

          如果你發(fā)現(xiàn)無法編譯過去,有可能是你選用的軟件中有的加入了一些新的特性而其他所選軟件不支持的原因,就相應(yīng)降低該軟件的版本號。例如我開始用 gcc-3.3.2,發(fā)現(xiàn)編譯不過,報(bào) as、ld 等版本太老,我就把 gcc 降為 2.95.3。太新的版本大多沒經(jīng)過大量的測試,建議不要選用。


           
           

          2. 建立工作目錄

          首先,我們建立幾個(gè)用來工作的目錄:

          在你的用戶目錄,我用的是用戶liang,因此用戶目錄為 /home/liang,先建立一個(gè)項(xiàng)目目錄embedded。

          $pwd 
          /home/liang
          $mkdir embedded
           


          再在這個(gè)項(xiàng)目目錄 embedded 下建立三個(gè)目錄 build-tools、kernel 和 tools。

          build-tools-用來存放你下載的 binutils、gcc 和 glibc 的源代碼和用來編譯這些源代碼的目錄。

          kernel-用來存放你的內(nèi)核源代碼和內(nèi)核補(bǔ)丁。

          tools-用來存放編譯好的交叉編譯工具和庫文件。

          $cd embedded
          $mkdir  build-tools kernel tools
           


          執(zhí)行完后目錄結(jié)構(gòu)如下:

          $ls embedded
          build-tools kernel tools
           


          3. 輸出和環(huán)境變量

          我們輸出如下的環(huán)境變量方便我們編譯。

          $export PRJROOT=/home/liang/embedded
          $export TARGET=arm-linux
          $export PREFIX=$PRJROOT/tools
          $export TARGET_PREFIX=$PREFIX/$TARGET
          $export PATH=$PREFIX/bin:$PATH
           


          如果你不慣用環(huán)境變量的,你可以直接用絕對或相對路徑。我如果不用環(huán)境變量,一般都用絕對路徑,相對路徑有時(shí)會失敗。環(huán)境變量也可以定義在.bashrc文件中,這樣當(dāng)你logout或換了控制臺時(shí),就不用老是export這些變量了。

          體系結(jié)構(gòu)和你的TAEGET變量的對應(yīng)如下表


           

          你可以在通過glibc下的config.sub腳本來知道,你的TARGET變量是否被支持,例如:

          $./config.sub  arm-linux
          arm-unknown-linux-gnu
           


          在我的環(huán)境中,config.sub 在 glibc-2.2.3/scripts 目錄下。

          網(wǎng)上還有一些 HOWTO 可以參考,ARM 體系結(jié)構(gòu)的《The GNU Toolchain for ARM Target HOWTO》,PowerPC 體系結(jié)構(gòu)的《Linux for PowerPC Embedded Systems HOWTO》等。對TARGET的選取可能有幫助。

          4. 建立編譯目錄

          為了把源碼和編譯時(shí)生成的文件分開,一般的編譯工作不在的源碼目錄中,要另建一個(gè)目錄來專門用于編譯。用以下的命令來建立編譯你下載的binutils、gcc和glibc的源代碼的目錄。

          $cd $PRJROOT/build-tools
          $mkdir build-binutils build-boot-gcc build-gcc build-glibc gcc-patch
           


          build-binutils-編譯binutils的目錄
          build-boot-gcc-編譯gcc 啟動部分的目錄
          build-glibc-編譯glibc的目錄
          build-gcc-編譯gcc 全部的目錄
          gcc-patch-放gcc的補(bǔ)丁的目錄

          gcc-2.95.3 的補(bǔ)丁有 gcc-2.95.3-2.patch、gcc-2.95.3-no-fixinc.patch 和gcc-2.95.3-returntype-fix.patch,可以從 http://www.linuxfromscratch.org/ 下載到這些補(bǔ)丁。

          再將你下載的 binutils-2.10.1、gcc-2.95.3、glibc-2.2.3 和 glibc-linuxthreads-2.2.3 的源代碼放入 build-tools 目錄中

          看一下你的 build-tools 目錄,有以下內(nèi)容:

          $ls
          binutils-2.10.1.tar.bz2     build-gcc   gcc-patch
          build-binutls            build-glibc          glibc-2.2.3.tar.gz
          build-boot-gcc           gcc-2.95.3.tar.gz glibc-linuxthreads-2.2.3.tar.gz
           


           
           

          建立內(nèi)核頭文件

          把你從 www.kernel.org 下載的內(nèi)核源代碼放入 $PRJROOT /kernel 目錄

          進(jìn)入你的 kernel 目錄:

          $cd $PRJROOT /kernel
           


          解開內(nèi)核源代碼

          $tar -xzvf linux-2.4.21.tar.gz
           


          $tar -xjvf linux-2.4.21.tar.bz2
           


          小于 2.4.19 的內(nèi)核版本解開會生成一個(gè) linux 目錄,沒帶版本號,就將其改名。

          $mv linux linux-2.4.x
           


          給 Linux 內(nèi)核打上你的補(bǔ)丁

          $cd linux-2.4.21
          $patch -p1 < ../patch-2.4.21-rmk2
           


          編譯內(nèi)核生成頭文件

          $make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig

          你也可以用 config 和 xconfig 來代替 menuconfig,但這樣用可能會沒有設(shè)置某些配置文件選項(xiàng)和沒有生成下面編譯所需的頭文件。推薦大家用 make menuconfig,這也是內(nèi)核開發(fā)人員用的最多的配置方法。配置完退出并保存,檢查一下的內(nèi)核目錄中的 include/linux/version.h 和 include/linux/autoconf.h 文件是不是生成了,這是編譯 glibc 是要用到的,version.h 和 autoconf.h 文件的存在,也說明了你生成了正確的頭文件。

          還要建立幾個(gè)正確的鏈接

          $cd include
          $ln -s asm-arm asm
          $cd asm
          $ln -s arch-epxa arch
          $ln -s proc-armv proc
           


          接下來為你的交叉編譯環(huán)境建立你的內(nèi)核頭文件的鏈接

          $mkdir -p $TARGET_PREFIX/include
          $ln -s $PRJROOT/kernel/linux-2.4.21/include/linux  $TARGET_PREFIX/include/linux
          $in -s $PRJROOT/kernel/linux-2.4.21/include/asm-arm  $TARGET_PREFIX/include/asm
           


          也可以把 Linux 內(nèi)核頭文件拷貝過來用

          $mkdir -p $TARGET_PREFIX/include
          $cp -r $PRJROOT/kernel/linux-2.4.21/include/linux  $TARGET_PREFIX/include
          $cp -r $PRJROOT/kernel/linux-2.4.21/include/asm-arm  $TARGET_PREFIX/include  
           


           
           

          建立二進(jìn)制工具(binutils)

          binutils是一些二進(jìn)制工具的集合,其中包含了我們常用到的as和ld。

          首先,我們解壓我們下載的binutils源文件。

          $cd $PRJROOT/build-tools
          $tar -xvjf binutils-2.10.1.tar.bz2
           


          然后進(jìn)入build-binutils目錄配置和編譯binutils。

          $cd build-binutils
          $../binutils-2.10.1/configure --target=$TARGET --prefix=$PREFIX
           


          --target 選項(xiàng)是指出我們生成的是 arm-linux 的工具,--prefix 是指出我們可執(zhí)行文件安裝的位置。

          會出現(xiàn)很多 check,最后產(chǎn)生 Makefile 文件。

          有了 Makefile 后,我們來編譯并安裝 binutils,命令很簡單。

          $make
          $make install
           


          看一下我們 $PREFIX/bin 下的生成的文件

          $ls $PREFIX/bin
          arm-linux-addr2line arm-linux-gasp arm-linux-objdump  arm-linux-strings
          arm-linux-ar   arm-linux-ld  arm-linux-ranlib  arm-linux-strip
          arm-linux-as   arm-linux-nm  arm-linux-readelf 
          arm-linux-c++filt  arm-linux-objcopy arm-linux-size
           


          我們來解釋一下上面生成的可執(zhí)行文件都是用來干什么的

          add2line - 將你要找的地址轉(zhuǎn)成文件和行號,它要使用 debug 信息。

          Ar-產(chǎn)生、修改和解開一個(gè)存檔文件

          As-gnu 的匯編器

          C++filt-C++ 和 java 中有一種重載函數(shù),所用的重載函數(shù)最后會被編譯轉(zhuǎn)化成匯編的標(biāo)號,c++filt 就是實(shí)現(xiàn)這種反向的轉(zhuǎn)化,根據(jù)標(biāo)號得到函數(shù)名。

          Gasp-gnu 匯編器預(yù)編譯器。

          Ld-gnu 的連接器

          Nm-列出目標(biāo)文件的符號和對應(yīng)的地址

          Objcopy-將某種格式的目標(biāo)文件轉(zhuǎn)化成另外格式的目標(biāo)文件

          Objdump-顯示目標(biāo)文件的信息

          Ranlib-為一個(gè)存檔文件產(chǎn)生一個(gè)索引,并將這個(gè)索引存入存檔文件中

          Readelf-顯示 elf 格式的目標(biāo)文件的信息

          Size-顯示目標(biāo)文件各個(gè)節(jié)的大小和目標(biāo)文件的大小

          Strings-打印出目標(biāo)文件中可以打印的字符串,有個(gè)默認(rèn)的長度,為4

          Strip-剝掉目標(biāo)文件的所有的符號信息


           
           

          建立初始編譯器(bootstrap gcc)

          首先進(jìn)入 build-tools 目錄,將下載 gcc 源代碼解壓

          $cd $PRJROOT/build-tools
          $tar -xvzf  gcc-2.95.3.tar.gz
           


          然后進(jìn)入 gcc-2.95.3 目錄給 gcc 打上補(bǔ)丁

          $cd gcc-2.95.3
          $patch -p1< ../gcc-patch/gcc-2.95.3.-2.patch
          $patch -p1< ../gcc-patch/gcc-2.95.3.-no-fixinc.patch
          $patch -p1< ../gcc-patch/gcc-2.95.3-returntype-fix.patch
          echo timestamp > gcc/cstamp-h.in
           


          在我們編譯并安裝 gcc 前,我們先要改一個(gè)文件 $PRJROOT/gcc/config/arm/t-linux,把
          TARGET_LIBGCC2-CFLAGS = -fomit-frame-pointer -fPIC
          這一行改為
          TARGET_LIBGCC2-CFLAGS = -fomit-frame-pointer -fPIC -Dinhibit_libc -D__gthr_posix_h

          你如果沒定義 -Dinhibit,編譯時(shí)將會報(bào)如下的錯(cuò)誤

          http://www.cnblogs.com/gcc-2.95.3/gcc/libgcc2.c:41: stdlib.h: No such file or directory
          http://www.cnblogs.com/gcc-2.95.3/gcc/libgcc2.c:42: unistd.h: No such file or directory
          make[3]: *** [libgcc2.a] Error 1
          make[2]: *** [stmp-multilib-sub] Error 2
          make[1]: *** [stmp-multilib] Error 1
          make: *** [all-gcc] Error 2
           


          如果沒有定義 -D__gthr_posix_h,編譯時(shí)會報(bào)如下的錯(cuò)誤

          In file included from gthr-default.h:1,
                           from http://www.cnblogs.com/gcc-2.95.3/gcc/gthr.h:98,
                           from http://www.cnblogs.com/gcc-2.95.3/gcc/libgcc2.c:3034:
          http://www.cnblogs.com/gcc-2.95.3/gcc/gthr-posix.h:37: pthread.h: No such file or directory
          make[3]: *** [libgcc2.a] Error 1
          make[2]: *** [stmp-multilib-sub] Error 2
          make[1]: *** [stmp-multilib] Error 1
          make: *** [all-gcc] Error 2
           


          還有一種與-Dinhibit同等效果的方法,那就是在你配置configure時(shí)多加一個(gè)參數(shù)-with-newlib,這個(gè)選項(xiàng)不會迫使我們必須使用newlib。我們編譯了bootstrap-gcc后,仍然可以選擇任何c庫。

          接著就是配置boostrap gcc, 后面要用bootstrap gcc 來編譯 glibc 庫。

          $cd ..; cd build-boot-gcc
          $../gcc-2.95.3/configure --target=$TARGET --prefix=$PREFIX \
          >--without-headers  --enable-languages=c --disable-threads
           


          這條命令中的 -target、--prefix 和配置 binutils 的含義是相同的,--without-headers 就是指不需要頭文件,因?yàn)槭墙徊婢幾g工具,不需要本機(jī)上的頭文件。-enable-languages=c是指我們的 boot-gcc 只支持 c 語言。--disable-threads 是去掉 thread 功能,這個(gè)功能需要 glibc 的支持。

          接著我們編譯并安裝 boot-gcc

          $make all-gcc
          $make install-gcc
           


          我們來看看 $PREFIX/bin 里面多了哪些東西

          $ls $PREFIX/bin
           


          你會發(fā)現(xiàn)多了 arm-linux-gcc 、arm-linux-unprotoize、cpp 和 gcov 幾個(gè)文件。

          Gcc-gnu 的 C 語言編譯器

          Unprotoize-將 ANSI C 的源碼轉(zhuǎn)化為 K&R C 的形式,去掉函數(shù)原型中的參數(shù)類型。

          Cpp-gnu的 C 的預(yù)編譯器

          Gcov-gcc 的輔助測試工具,可以用它來分析和優(yōu)程序。

          使用 gcc3.2 以及 gcc3.2 以上版本時(shí),配置 boot-gcc 不能使用 --without-headers 選項(xiàng),而需要使用 glibc 的頭文件。


           
           

          建立 c 庫(glibc)

          首先解壓 glibc-2.2.3.tar.gz 和 glibc-linuxthreads-2.2.3.tar.gz 源代碼

          $cd $PRJROOT/build-tools
          $tar -xvzf glibc-2.2.3.tar.gz
          $tar -xzvf glibc-linuxthreads-2.2.3.tar.gz --directory=glibc-2.2.3
           


          然后進(jìn)入 build-glibc 目錄配置 glibc

          $cd build-glibc
          $CC=arm-linux-gcc ../glibc-2.2.3/configure --host=$TARGET --prefix="/usr"
          --enable-add-ons --with-headers=$TARGET_PREFIX/include
           


          CC=arm-linux-gcc 是把 CC 變量設(shè)成你剛編譯完的boostrap gcc,用它來編譯你的glibc。--enable-add-ons是告訴glibc用 linuxthreads 包,在上面我們已經(jīng)將它放入了 glibc 源碼目錄中,這個(gè)選項(xiàng)等價(jià)于 -enable-add-ons=linuxthreads。--with-headers 告訴 glibc 我們的linux 內(nèi)核頭文件的目錄位置。

          配置完后就可以編譯和安裝 glibc

          $make
          $make install_root=$TARGET_PREFIX prefix="" install
           


          然后你還要修改 libc.so 文件


          GROUP ( /lib/libc.so.6 /lib/libc_nonshared.a)

          改為
          GROUP ( libc.so.6 libc_nonshared.a)

          這樣連接程序 ld 就會在 libc.so 所在的目錄查找它需要的庫,因?yàn)槟愕臋C(jī)子的/lib目錄可能已經(jīng)裝了一個(gè)相同名字的庫,一個(gè)為編譯可以在你的宿主機(jī)上運(yùn)行的程序的庫,而不是用于交叉編譯的。


           
           

          建立全套編譯器(full gcc)

          在建立boot-gcc 的時(shí)候,我們只支持了C。到這里,我們就要建立全套編譯器,來支持C和C++。

          $cd $PRJROOT/build-tools/build-gcc
          $../gcc-2.95.3/configure --target=$TARGET --prefix=$PREFIX --enable-languages=c,c++
           


          --enable-languages=c,c++ 告訴 full gcc 支持 c 和 c++ 語言。

          然后編譯和安裝你的 full gcc

          $make all
          $make install
           


          我們再來看看 $PREFIX/bin 里面多了哪些東西

          $ls $PREFIX/bin
           


          你會發(fā)現(xiàn)多了 arm-linux-g++ 、arm-linux-protoize 和 arm-linux-c++ 幾個(gè)文件。

          G++-gnu的 c++ 編譯器。

          Protoize-與Unprotoize相反,將K&R C的源碼轉(zhuǎn)化為ANSI C的形式,函數(shù)原型中加入?yún)?shù)類型。

          C++-gnu 的 c++ 編譯器。

          到這里你的交叉編譯工具就算做完了,簡單驗(yàn)證一下你的交叉編譯工具。

          用它來編譯一個(gè)很簡單的程序 helloworld.c

          #i nclude

          int main(void)
          {
           printf("hello world\n");
           return 0;
          }

          $arm-linux-gcc helloworld.c -o helloworld
          $file helloworld
          helloworld: ELF 32-bit LSB executable, ARM, version 1,
          dynamically linked (uses shared libs), not stripped
           


          上面的輸出說明你編譯了一個(gè)能在 arm 體系結(jié)構(gòu)下運(yùn)行的 helloworld,證明你的編譯工具做成功了。
          posted @ 2011-12-05 09:14 H.C 閱讀(486) | 評論 (0)編輯 收藏

          彈出警告窗口
                  String tf1=this.jTextField1.getText();
          String tf2
          =this.jTextField2.getText();
          if(!(tf1.equals("")||tf1.charAt(0)== ' '||(int)tf1.charAt(0)==10||tf2.equals("")||tf2.charAt(0)== ' '||(int)tf2.charAt(0)==10)){
          //如果用戶名,密碼輸入不為空,執(zhí)行操作
          }
          else
          JOptionPane.showMessageDialog(
          null, "輸入為空! ","警告 ",JOptionPane.WARNING_MESSAGE);//若輸入為空或第一個(gè)字符為空格或者回車,則彈出警告窗口
          posted @ 2011-11-24 17:55 H.C 閱讀(252) | 評論 (1)編輯 收藏


          import java.util.*;
          import java.text.SimpleDateFormat;

          public class test{
              Date date = new Date();
              SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
              System.out.println(df.format(date));
              date.getTime()   //返回從1970-1-1 零時(shí)到現(xiàn)在的毫秒數(shù)
             
              df.parse("2011-11-23")  //將字符串轉(zhuǎn)換為Date類型
              df.format(date)         //將Date類型轉(zhuǎn)換為字符串類型

              date.getTime()  < date1.getTime()   //比較兩個(gè)日期的大小

              (date.getTime() - date1.getTime())/(1000*60*60*24)  // 兩個(gè)日期相差的天數(shù)

          posted @ 2011-11-23 20:34 H.C 閱讀(203) | 評論 (0)編輯 收藏

          grub的安裝

          grub> root (hd0,0)    //指定現(xiàn)在根目錄,后面的操作都是在這個(gè)分區(qū)里進(jìn)行的。
                                  //grub以發(fā)現(xiàn)磁盤的順序命名hd0是第一塊磁盤,hd1是第二塊磁盤。第一分區(qū)為0,第二分區(qū)為1。hd0,0是第一塊磁盤的第一分區(qū)。
          grub>setup(hd0)       //把grub的stage1寫入第一塊磁盤的MBR,也可以用Install具體看HELP。在/boot/grub文件夾里有stage1 ,stage2文件。

          grub配置

          grub啟動菜單由menu.lst配置

          default 0    //默認(rèn)啟動第一個(gè)
          timeout     //等待時(shí)間

          title        ubutun8.04    //菜單中顯示的標(biāo)題
          root       (hd0,0)      //同上
          kernel      /boot/vmlinuz   root= /dev/sda0  ro quiet   //同下

          直接從GRUB命令行啟動系統(tǒng)

          grub>root(hd0,0)      //同上
          grub>kernel  /boot/vmlinuz.2.6.24-29  root=/dev/sda0 ro quiet   //要load的內(nèi)核位置。root是啟動后真文件系統(tǒng)的根目錄。ro 掛載為只讀模式。quiet 安靜模式,不回顯。
          grub>initrd   /boot/initrd.2.6.24-29     //ramfs文件系統(tǒng)的壓縮文件,這個(gè)可以自己制作。
          grub>boot           //啟動

          這是自己寫的筆記,只作參考。如有不對敬請斧正。
          posted @ 2011-11-15 21:00 H.C 閱讀(251) | 評論 (0)編輯 收藏

          .切換到kdm和gdm的方法是:
          sudo dpkg-reconfigure gdm
          sudo dpkg-reconfigure kdm

          1.假如需要切換到GNOME:

          #switchdesk gnome

          2.假如需要切換到KDE:

          #switchdesk kde

          刪除kubuntu開機(jī)畫面
          sudo apt-get --purge plymouth-theme-kubuntu-logo

          posted @ 2011-11-14 19:38 H.C 閱讀(288) | 評論 (0)編輯 收藏

          yEd Graph Editor
          posted @ 2011-11-14 10:42 H.C 閱讀(330) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 丹阳市| 湖州市| 高青县| 怀宁县| 扬中市| 奇台县| 二手房| 济源市| 武乡县| 乐安县| 新宁县| 拜城县| 辽阳市| 永安市| 凤台县| 芦溪县| 兴安县| 盐山县| 阿拉尔市| 鲁甸县| 白水县| 贵阳市| 镇康县| 安福县| 墨竹工卡县| 虎林市| 鸡泽县| 綦江县| 扬中市| 合江县| 安庆市| 平南县| 辽宁省| 施甸县| 武夷山市| 类乌齐县| 灯塔市| 仪征市| 桂平市| 柳州市| 鹤庆县|