青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

網絡服務器軟件開發/中間件開發,關注ACE/ICE/boost

C++博客 首頁 新隨筆 聯系 聚合 管理
  152 Posts :: 3 Stories :: 172 Comments :: 0 Trackbacks
 
  · 閆健勇·CPCW
  
    當前,雖然Linux還不很普及,在Linux下編寫和編譯程序的人不多。但是我相信,隨著Linux性能的不斷提升和逐漸普及,會有許多自由軟件出現,也會有許多人成為Linux下的程序員。我結合自己的經驗,介紹一下Linux下編寫和編譯程序所要注意的幾個問題,奉獻給希望為Linux的發展作出貢獻的人們。
  
  
  Linux下怎樣編譯程序?
  
  大多數Linux程序都是由C語言編寫的并由GNU C編譯而成。現在GCC是各種發行套件的一部分。有關最新GCC編譯器的版本、文章和補丁請看ftp://ftp.gnu.org/pub/gnu/。
  
  由C++編寫的程序必須由GNU C++編譯,GNU C++也是各種發行套件的一部分,在以上網址也有最新版本和補丁。
  
  編譯2.0.x的內核需要2.7.2.x版本的GCC,如用象GCC 2.8.x, EGCS, or PGCC別的編譯器編譯內核可能產生不可預想的后果。
  
  
  怎樣移植其它Unix程序到Linux上?
  
  總得來說,Unix上的程序不需要做改動,只要簡單的按照提示就可以移植到Linux上,如果安裝過程中出現錯誤信息,而你又不知道怎么處理,你可以猜或略去,不過這樣產生的程序往往帶有bug。所以最好還是問一下有經驗的人。
  
  如果要從BSD-ish移植程序,試一試在編譯時加上-I/usr/include/bsd 和 ?lbsd命令。
  
  
  什么是ld.so,從哪可以找到它?
  
  ld.so是動態函數庫裝載器。過去,使用共享函數庫的程序在原代碼開頭使用約3K的空間來尋找和加載共享函數庫,現在,這段代碼被加進了一個特殊共享函數庫/lib/ld.so,所有的程序都可以使用該共享庫,這樣就節省了磁盤空間,而且升級方便。
  
  ld.so可以從以下網址得到tsx-11.mit.edu/pub/linux/packages/GCC/。
  
  
  怎樣升級庫函數而不使系統崩潰?
  
  注意:進行此操作應該養成做備份的習慣,因為這項操作很容易出錯。
  
  如果你升級象libc4這樣的老函數庫,這個過程會變得非常困難。而且你應該在該系統上讓libc4和libc5共存,因為,有些老程序還需要它。升級libc5也一樣。
  
  升級動態庫的問題常出現在當你移走老的函數庫時,用來升級的程序也運行不了了。有許多方法可以解決這個問題。一個方法就是暫時備份一下運行程序所需函數庫,它們一般在/lib/、/usr/lib/、 /usr/local/lib/、或其它的地方,在文件/etc/ld.so.conf中都有詳細記錄。
  
  例如,當你升級libc5時,目錄/lib/中有如下文件
  
  libc.so.5
  
  libc.so.5.4.33
  
  libm.so.5
  
  libm.so.5.0.9
  
  這些是C函數庫和數學庫,拷貝它們到文件/etc/ld.so.conf中含有的其它的目錄,如/usr/lib/中:
  
  cp -df /lib/libc.so.5* /usr/lib/
  
  cp -df /lib/libm.so.5* /usr/lib/
  
  ldconfig
  
  一定要記住運行ldconfig來升級函數庫的配置文件。
  
  文件libc.so.5 和 libm.so.5是實際庫文件的鏈接文件,當你升級的時候,如果老的鏈接文件存在,新的鏈接不會產生,除非你使用CP命令的-f選項。CP的-d選項只復制鏈接文件,不復制原文件。
  
  如果你需要直接覆蓋鏈接,使用ln命令的選項-f。
  
  例如,拷貝新的庫函數覆蓋舊的。先對新的函數庫做一個鏈接,然后把函數庫和鏈接一起拷貝到/lib/中,命令如下:
  
  ln -sf ./libm.so.5.0.48 libm.so.5
  
  ln -sf ./libc.so.5.0.48 libc.so.5
  
  cp -df libm.so.5* /lib
  
  cp -df libc.so.5* /lib
  
  重申一下,拷貝完別忘記運行ldconfig.
  
  如果一切工作順利的話,你可以刪除老的函數庫的備份。
  
  
  我能否把在486上編譯的代碼或編譯器拿到386上用?
  
  當然,除非你編譯的是內核。
  
  GCC用來在486上編譯的選項-m486 只是優化了所編譯程序,使其運行快一些。這些編譯的程序仍能很好的在386上運行,只是效果差一些。
  
  然而,從內核1.3.35以后,采用486或Pentium選項編譯的內核不能用于386的機器。
  
  GCC可以針對386和486進行配置。兩者區別在于,針對386配置的GCC把-m386作為缺省選項,而針對486配置的GCC把-m486作為缺省選項,僅此而已。
  
  
  gcc -O6可以干什么?
  
  目前,它和 -O2 (GCC 2.5) 或 -O3 (GCC 2.6, 2.7)功能一樣,所有版本大于它的功能也一樣。新版內核的Makefiles使用-O2,所以你也應該用-O2。
  
  
  linux/*.h 和asm/*.h在什么地方?
  
  目錄 /usr/include/linux/ 和 /usr/include/asm/低下的文件是內核頭文件的軟鏈接,內核頭文件其實在目錄/usr/src/kernel*/低下。
  
  
  怎樣作一個共享函數庫?
  
  對ELF, 命令如下:
  
  gcc -fPIC -c *.c
  
  gcc -shared -Wl,-soname,libfoo.so.1 -o libfoo.so.1.0 *.o
  
  對a.out,從 http://tsx-11.mit.edu/pub/linux/packages/GCC/src/ 下載n.nn.tar.gz,其中包含詳細說明。建議你將共享庫由a.out升級為ELF。
  
  
  為什么我編譯的可執行程序非常大?
  
  用ELF編譯器,生成可執行程序太大最可能的原因是沒有合適的.so庫與你使用的庫函數鏈接。對每一個象libc.so.5.2.18的函數庫,應該有一個象libc.so的鏈接。
  
  用a.out編譯器,生成可執行程序太大可能是使用了-g選項,這會生成靜態鏈接庫而不是動態鏈接庫。
  
  
  從哪可以得到對于Linux的‘lint’?
  
  大部分‘lint’的功能已經內置進了GCC,打開GCC的-Wall選項會打開許多有用的外部警告。
  
  還有一個叫`lclint'的軟件功能和傳統的lint差不多,原代碼可以在http://larch.lcs.mit.edu /pub/Larch/lclint/中找到。
    做人要厚道,請注明轉自酷網動力(www.ASPCOOL.COM)。
posted on 2007-04-05 10:34 true 閱讀(363) 評論(0)  編輯 收藏 引用 所屬分類: linux
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            91久久精品国产91久久| 久久综合999| 久久综合激情| 欧美国产日韩一区二区| 亚洲大胆视频| 欧美日韩中文| 欧美一区成人| 欧美激情亚洲另类| 午夜精品理论片| 亚洲高清在线观看| 欧美性jizz18性欧美| 欧美专区在线播放| 亚洲精品中文字幕有码专区| 亚洲精品午夜| 狠狠88综合久久久久综合网| 欧美日韩国产在线看| 久久精品亚洲乱码伦伦中文| 日韩系列欧美系列| 猛男gaygay欧美视频| 亚洲一卡二卡三卡四卡五卡| 亚洲电影在线| 久久福利影视| 亚洲天堂网在线观看| 91久久国产精品91久久性色| 国产在线观看一区| 国产精品99免视看9| 欧美美女操人视频| 欧美激情中文不卡| 嫩草影视亚洲| 久久天天躁夜夜躁狠狠躁2022| 亚洲国产欧美日韩| 国产日韩欧美高清| 国产精品久久久久久久久久久久 | av成人黄色| 91久久久国产精品| 在线看片成人| 亚洲国产专区| 亚洲美女电影在线| 一区二区三区欧美成人| 日韩视频永久免费| 中文精品在线| 亚洲欧美激情四射在线日| 亚洲一区二区高清视频| 欧美在线免费视频| 裸体素人女欧美日韩| 欧美激情一区二区三区蜜桃视频 | 国产日韩欧美91| 狠狠色狠狠色综合日日tαg| 在线观看国产一区二区| 亚洲日本欧美日韩高观看| 亚洲免费成人| 久久xxxx| 亚洲第一色中文字幕| 亚洲第一区在线观看| 一区二区三区日韩精品视频| 午夜精品美女自拍福到在线| 久久久夜精品| 国产精品扒开腿做爽爽爽视频| 国产精品欧美风情| 亚洲第一网站| 午夜日韩福利| 亚洲人体大胆视频| 欧美一区二区三区在线视频 | 91久久久在线| 午夜日本精品| 亚洲美女视频在线观看| 久久大逼视频| 国产精品久久久久9999吃药| 亚洲国产第一页| 久久国产免费| 在线午夜精品自拍| 欧美成人久久| 一区二区三区在线视频免费观看| 亚洲一区二区三区中文字幕在线 | 欧美一区二区在线播放| 欧美刺激午夜性久久久久久久| 国产精品美女999| 一区二区三区国产盗摄| 欧美**人妖| 久久精视频免费在线久久完整在线看| 欧美日韩国产一区二区三区地区| 影音先锋亚洲精品| 毛片一区二区三区| 久久精品国产99国产精品| 国产一区二区三区四区三区四| 久久精品国产999大香线蕉| 亚洲在线中文字幕| 国产午夜精品一区二区三区视频| 欧美亚洲一区二区在线观看| 亚洲网友自拍| 狠狠色丁香久久综合频道| 久久精品国产一区二区电影| 欧美一区二区三区免费视频| 国产资源精品在线观看| 欧美电影免费| 欧美午夜片欧美片在线观看| 欧美一级夜夜爽| 久久频这里精品99香蕉| 亚洲免费观看| 亚洲欧美日韩精品久久| 雨宫琴音一区二区在线| 亚洲理论在线| 影音先锋久久| 亚洲私拍自拍| 99精品国产热久久91蜜凸| 99在线精品视频| 国产乱码精品| 99精品99久久久久久宅男| 激情欧美亚洲| 欧美在线91| 久久久久久久综合狠狠综合| 亚洲一区在线播放| 久久久久国内| 欧美一级一区| 欧美美女bb生活片| 久久青草久久| 国产无一区二区| 亚洲一区高清| 一区二区三区蜜桃网| 蜜臀av一级做a爰片久久| 久久精品国内一区二区三区| 欧美日韩一区二区三区视频 | 国产麻豆精品久久一二三| 亚洲精品综合久久中文字幕| 亚洲精品1区2区| 你懂的国产精品| 欧美激情国产高清| 精品成人国产| 久久漫画官网| 亚洲国产老妈| 最新国产成人av网站网址麻豆| 亚洲欧美精品suv| 久久久噜噜噜| 国产一区二区三区在线观看网站| 亚洲一区二区黄| 久久大逼视频| 亚洲黄一区二区| 欧美电影免费观看| 亚洲视频在线观看免费| 久久成人资源| 亚洲精品一品区二品区三品区| 欧美精品久久一区二区| 一本一本久久a久久精品综合妖精| 亚洲视频中文| 国内久久婷婷综合| 欧美gay视频激情| 中文欧美在线视频| 久久综合九色综合网站| 一区二区三区国产精品| 国产三级精品三级| 欧美一区二区视频观看视频| 亚洲第一主播视频| 亚洲免费一在线| 韩国三级电影一区二区| 欧美日韩大片| 久久亚洲春色中文字幕| 一区二区三区黄色| 一区二区亚洲精品| 欧美日韩亚洲一区二区三区在线| 亚洲一区二区网站| 麻豆精品在线观看| 亚洲无亚洲人成网站77777 | 亚洲福利视频免费观看| 亚洲精品在线观看视频| 国产主播精品在线| 欧美色图天堂网| 欧美国产极速在线| 巨胸喷奶水www久久久免费动漫| 一区二区三区.www| 亚洲伦理精品| 亚洲精品久久嫩草网站秘色| 亚洲国产成人精品女人久久久 | 亚洲视频自拍偷拍| 亚洲激情午夜| 亚洲第一天堂无码专区| 欧美激情四色| 亚洲国产精品v| 免费一级欧美在线大片| 蜜桃视频一区| 亚洲电影在线看| 99ri日韩精品视频| 亚洲另类在线视频| 亚洲一区二区三区免费在线观看 | 亚洲免费人成在线视频观看| 日韩一二三区视频| 亚洲婷婷在线| 欧美一区二区视频观看视频| 久久亚洲风情| 久久久久9999亚洲精品| 久久躁狠狠躁夜夜爽| 久久夜精品va视频免费观看| 另类尿喷潮videofree| 老牛嫩草一区二区三区日本| 欧美mv日韩mv国产网站| 亚洲国产婷婷香蕉久久久久久99| 亚洲国产色一区| 欧美一区二区三区在线| 久久伊人免费视频| 欧美日韩亚洲综合一区| 国产精品一二三|