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

網(wǎng)絡服務器軟件開發(fā)/中間件開發(fā),關注ACE/ICE/boost

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  152 Posts :: 3 Stories :: 172 Comments :: 0 Trackbacks
 
  · 閆健勇·CPCW
  
    當前,雖然Linux還不很普及,在Linux下編寫和編譯程序的人不多。但是我相信,隨著Linux性能的不斷提升和逐漸普及,會有許多自由軟件出現(xiàn),也會有許多人成為Linux下的程序員。我結合自己的經(jīng)驗,介紹一下Linux下編寫和編譯程序所要注意的幾個問題,奉獻給希望為Linux的發(fā)展作出貢獻的人們。
  
  
  Linux下怎樣編譯程序?
  
  大多數(shù)Linux程序都是由C語言編寫的并由GNU C編譯而成。現(xiàn)在GCC是各種發(fā)行套件的一部分。有關最新GCC編譯器的版本、文章和補丁請看ftp://ftp.gnu.org/pub/gnu/。
  
  由C++編寫的程序必須由GNU C++編譯,GNU C++也是各種發(fā)行套件的一部分,在以上網(wǎng)址也有最新版本和補丁。
  
  編譯2.0.x的內(nèi)核需要2.7.2.x版本的GCC,如用象GCC 2.8.x, EGCS, or PGCC別的編譯器編譯內(nèi)核可能產(chǎn)生不可預想的后果。
  
  
  怎樣移植其它Unix程序到Linux上?
  
  總得來說,Unix上的程序不需要做改動,只要簡單的按照提示就可以移植到Linux上,如果安裝過程中出現(xiàn)錯誤信息,而你又不知道怎么處理,你可以猜或略去,不過這樣產(chǎn)生的程序往往帶有bug。所以最好還是問一下有經(jīng)驗的人。
  
  如果要從BSD-ish移植程序,試一試在編譯時加上-I/usr/include/bsd 和 ?lbsd命令。
  
  
  什么是ld.so,從哪可以找到它?
  
  ld.so是動態(tài)函數(shù)庫裝載器。過去,使用共享函數(shù)庫的程序在原代碼開頭使用約3K的空間來尋找和加載共享函數(shù)庫,現(xiàn)在,這段代碼被加進了一個特殊共享函數(shù)庫/lib/ld.so,所有的程序都可以使用該共享庫,這樣就節(jié)省了磁盤空間,而且升級方便。
  
  ld.so可以從以下網(wǎng)址得到tsx-11.mit.edu/pub/linux/packages/GCC/。
  
  
  怎樣升級庫函數(shù)而不使系統(tǒng)崩潰?
  
  注意:進行此操作應該養(yǎng)成做備份的習慣,因為這項操作很容易出錯。
  
  如果你升級象libc4這樣的老函數(shù)庫,這個過程會變得非常困難。而且你應該在該系統(tǒng)上讓libc4和libc5共存,因為,有些老程序還需要它。升級libc5也一樣。
  
  升級動態(tài)庫的問題常出現(xiàn)在當你移走老的函數(shù)庫時,用來升級的程序也運行不了了。有許多方法可以解決這個問題。一個方法就是暫時備份一下運行程序所需函數(shù)庫,它們一般在/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函數(shù)庫和數(shù)學庫,拷貝它們到文件/etc/ld.so.conf中含有的其它的目錄,如/usr/lib/中:
  
  cp -df /lib/libc.so.5* /usr/lib/
  
  cp -df /lib/libm.so.5* /usr/lib/
  
  ldconfig
  
  一定要記住運行l(wèi)dconfig來升級函數(shù)庫的配置文件。
  
  文件libc.so.5 和 libm.so.5是實際庫文件的鏈接文件,當你升級的時候,如果老的鏈接文件存在,新的鏈接不會產(chǎn)生,除非你使用CP命令的-f選項。CP的-d選項只復制鏈接文件,不復制原文件。
  
  如果你需要直接覆蓋鏈接,使用ln命令的選項-f。
  
  例如,拷貝新的庫函數(shù)覆蓋舊的。先對新的函數(shù)庫做一個鏈接,然后把函數(shù)庫和鏈接一起拷貝到/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
  
  重申一下,拷貝完別忘記運行l(wèi)dconfig.
  
  如果一切工作順利的話,你可以刪除老的函數(shù)庫的備份。
  
  
  我能否把在486上編譯的代碼或編譯器拿到386上用?
  
  當然,除非你編譯的是內(nèi)核。
  
  GCC用來在486上編譯的選項-m486 只是優(yōu)化了所編譯程序,使其運行快一些。這些編譯的程序仍能很好的在386上運行,只是效果差一些。
  
  然而,從內(nèi)核1.3.35以后,采用486或Pentium選項編譯的內(nèi)核不能用于386的機器。
  
  GCC可以針對386和486進行配置。兩者區(qū)別在于,針對386配置的GCC把-m386作為缺省選項,而針對486配置的GCC把-m486作為缺省選項,僅此而已。
  
  
  gcc -O6可以干什么?
  
  目前,它和 -O2 (GCC 2.5) 或 -O3 (GCC 2.6, 2.7)功能一樣,所有版本大于它的功能也一樣。新版內(nèi)核的Makefiles使用-O2,所以你也應該用-O2。
  
  
  linux/*.h 和asm/*.h在什么地方?
  
  目錄 /usr/include/linux/ 和 /usr/include/asm/低下的文件是內(nèi)核頭文件的軟鏈接,內(nèi)核頭文件其實在目錄/usr/src/kernel*/低下。
  
  
  怎樣作一個共享函數(shù)庫?
  
  對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。
  
  
  為什么我編譯的可執(zhí)行程序非常大?
  
  用ELF編譯器,生成可執(zhí)行程序太大最可能的原因是沒有合適的.so庫與你使用的庫函數(shù)鏈接。對每一個象libc.so.5.2.18的函數(shù)庫,應該有一個象libc.so的鏈接。
  
  用a.out編譯器,生成可執(zhí)行程序太大可能是使用了-g選項,這會生成靜態(tài)鏈接庫而不是動態(tài)鏈接庫。
  
  
  從哪可以得到對于Linux的‘lint’?
  
  大部分‘lint’的功能已經(jīng)內(nèi)置進了GCC,打開GCC的-Wall選項會打開許多有用的外部警告。
  
  還有一個叫`lclint'的軟件功能和傳統(tǒng)的lint差不多,原代碼可以在http://larch.lcs.mit.edu /pub/Larch/lclint/中找到。
    做人要厚道,請注明轉自酷網(wǎng)動力(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>
            中日韩在线视频| 欧美ab在线视频| 亚洲国产免费看| 亚洲二区视频在线| 亚洲美女黄色| 亚洲综合精品一区二区| 欧美一级视频精品观看| 久久久在线视频| 免费成人在线观看视频| 亚洲精品视频在线观看网站| 99精品久久久| 国产一区二区精品久久| 亚洲国产精品一区二区第四页av| 国产精品欧美风情| 狠狠色综合播放一区二区| 在线欧美日韩| 亚洲专区在线视频| 久久综合色婷婷| 99在线精品免费视频九九视| 欧美中文字幕在线| 欧美日韩裸体免费视频| 韩国成人福利片在线播放| 99一区二区| 久久这里有精品15一区二区三区| 亚洲精品欧洲精品| 久久九九有精品国产23| 欧美日韩精品在线| 在线观看欧美日韩国产| 亚洲一区二区三区中文字幕在线 | 一本色道久久综合亚洲精品高清| 亚洲影视在线播放| 欧美成人蜜桃| 黑丝一区二区| 午夜在线一区二区| 亚洲精品乱码久久久久| 久久久午夜电影| 国产精品影片在线观看| 一区二区三区产品免费精品久久75| 久久久亚洲高清| 亚洲一区在线观看视频| 欧美日产国产成人免费图片| 永久91嫩草亚洲精品人人| 欧美在线免费一级片| 亚洲作爱视频| 欧美日韩ab片| 亚洲婷婷综合久久一本伊一区| 亚洲二区在线视频| 久久综合狠狠综合久久综青草| 国内精品国产成人| 久久久精品国产免大香伊| 亚洲一区二区在线看| 国产精品爱啪在线线免费观看| 99ri日韩精品视频| 亚洲久久一区| 欧美日韩视频在线| 亚洲午夜视频在线观看| 99亚洲视频| 国产伦精品一区二区三| 欧美在线日韩精品| 久久精品一区二区三区不卡牛牛 | 最新日韩欧美| 欧美精品123区| aa亚洲婷婷| 99精品热6080yy久久| 亚洲国产美女精品久久久久∴| 另类春色校园亚洲| 久久精品国产亚洲5555| 韩国v欧美v日本v亚洲v| 欧美成人第一页| 欧美成人高清视频| 亚洲一区二区三区激情| 午夜精品久久久久久久久久久久久 | 久久精品三级| 亚洲第一精品影视| 亚洲国产精品传媒在线观看| 欧美人与禽猛交乱配视频| 亚洲尤物在线| 久久激情综合网| 亚洲免费观看| 亚洲一区二区视频| 伊人色综合久久天天| 亚洲精品国精品久久99热| 国产精品日韩一区二区三区| 久久不射电影网| 欧美www视频| 亚洲一区二区三区在线播放| 欧美伊人久久大香线蕉综合69| 亚洲国产高清高潮精品美女| 日韩视频在线一区二区三区| 国产一区日韩欧美| 亚洲精品久久久久| 国外成人在线| 一本色道久久综合亚洲精品高清| 国产一区久久久| 亚洲精品孕妇| 尤物九九久久国产精品的分类| 99re热这里只有精品视频| 狠狠色狠狠色综合| 一区二区激情小说| 亚洲国产成人高清精品| 国产精品99久久久久久人| 1024国产精品| 欧美一级免费视频| 亚洲天堂av在线免费| 狂野欧美激情性xxxx| 欧美一区视频在线| 欧美三级午夜理伦三级中文幕 | 亚洲一区二区三区免费视频| 久久精品免费电影| 亚洲欧美一区二区三区极速播放| 免费视频亚洲| 蜜臀91精品一区二区三区| 国产精品久久久久久久久借妻 | 午夜亚洲福利| 一区二区三区欧美| 免费一级欧美片在线播放| 国产精品系列在线播放| 亚洲精品中文字幕女同| 久久国产婷婷国产香蕉| 欧美一区二区三区久久精品茉莉花| 欧美激情在线观看| 欧美国产一区二区| 亚洲福利视频网| 久久久精品日韩| 久久免费午夜影院| 国产视频欧美| 香蕉视频成人在线观看| 性色一区二区| 国产精品视频不卡| 亚洲网在线观看| 午夜精品成人在线| 国产精品午夜在线观看| 亚洲午夜黄色| 翔田千里一区二区| 国产老肥熟一区二区三区| 亚洲影院在线观看| 欧美一区二区三区四区视频| 国产麻豆视频精品| 欧美一区二区三区四区高清 | 亚洲日本成人网| 中日韩高清电影网| 国产精品男人爽免费视频1| 亚洲一区二区三区四区中文| 欧美亚洲免费高清在线观看| 国产一区99| 久热精品在线| 日韩午夜在线播放| 亚洲欧美成人网| 国产精品一区二区在线观看网站| 亚洲欧美国产va在线影院| 久久精品五月婷婷| 亚洲国产电影| 欧美日韩一区二区三区在线视频| 亚洲天堂男人| 久久伊人精品天天| 99精品欧美| 国产毛片一区二区| 免费日韩一区二区| 一区二区三区国产盗摄| 久久婷婷国产综合精品青草| 99re视频这里只有精品| 国产精品丝袜久久久久久app| 欧美一级淫片播放口| 欧美黄色视屏| 西西人体一区二区| 亚洲国产一区二区三区在线播 | 欧美视频免费在线| 欧美一级二级三级蜜桃| 欧美国产日韩视频| 亚洲欧美国产一区二区三区| 韩国女主播一区二区三区| 欧美福利小视频| 欧美影视一区| 99综合电影在线视频| 久久一区二区三区四区| 亚洲天堂av综合网| 91久久精品一区| 国内精品一区二区| 国产精品电影在线观看| 免费视频一区二区三区在线观看| 亚洲欧美韩国| 日韩一区二区免费看| 欧美国产日韩在线观看| 久久精品视频在线观看| 亚洲制服av| 亚洲激情综合| 亚洲欧洲日夜超级视频| 国产精品视频观看| 欧美伦理91| 久久只有精品| 欧美一乱一性一交一视频| 一区二区三区四区在线| 亚洲人成人一区二区三区| 男人的天堂成人在线| 久久久久免费视频| 欧美伊久线香蕉线新在线| 亚洲欧美大片| 亚洲欧美中文字幕| 亚洲一区免费看| 中文精品视频|