日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

读书笔记---编译程序中的三板斧

發布時間:2025/4/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 读书笔记---编译程序中的三板斧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
平時安裝軟件安裝多了,總是少不了./confgiure;make;make install 這三條命令
然而,軟件安裝完畢,各位有想過這幾條命令的意義么?
???? 今天早上看書的時候,談到C編譯程序及調試,于是將書中所說總結出來,以供大家分享吧。
???? 通常一個源碼包解壓縮以后,我們ls一下,能看到configure文件,通常這是一個可執行腳本文件。由這個腳本文件加上參數,經過運行,生成Makefile文件和其他的一些必要的文件
???? 如果ls沒有發現configure文件的話,你第一步執行./configure是沒用的。只會得到一條shell返回的錯誤提示。那么沒有configure的程序我們要如何編譯呢,通常我們可以看README和INSTALL文件,里面會提示我們用一些其他的程序來生成configure文件。
比如perl腳本寫的Makefile.pl,可以用perl Makefile.pl來生成Makefile。
????? 有些程序在執行之前可能需要打上補丁,通常可以找到一些patch文件,
常用 patch -p1 < filename.patch的方法給源碼打上補丁。

???? configrue的開始基本上都是檢查編譯環境,如gcc編譯器的位置,各種庫和頭文件的位置等等。當檢測遇到錯誤就會停下來。并輸出錯誤信息。對于redhat,建議在安裝系統的時候就把開發工具等都全部選中,這樣避免編譯的時候臨時去安裝需要的編譯工具和一些缺少的庫。
???? 有時候我們的系統少一些其他的庫,是導致我們編譯失敗的原因。默認情況下,我們都是運行make來調用系統工具對C代碼進行編譯。對于某些軟件,make后面的參數很長,也比較復雜,這些參數都是什么意思呢。
用postfix舉例吧
make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -I/usr/local/include/sasl' 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/local/lib -lsasl2'
? 這一大串輸入起來是不是很費勁。分別解釋一下吧
-I路徑?? 表示在指定路徑搜索頭文件
-lz??????? 表示搜索libz.so或者libz.a,這里用了縮寫的形式,只寫了一個z,同理lmysqlclient就表示libmysqlclient.so/libmysqlclient.a
CCARGS表示宏。用于替換makefile中的默認值

make的過程中會生成很多中間文件*.o,最后連接成為可執行文件。make一般時間比較長,取決于CPU的性能了。

接下來一般就是make install了,可是為什么是install參數呢,可以man make看一下,你會發現并沒有install這個參數,那么這個參數是哪里來的呢

如果你還沒有刪除剛才的文件,你可以用編輯器打開Makefile看一下。這里么定義了很多目標字段,格式如下
targert: prerequisite-list
TAB construction-commands
這里的TAB表示一個制表符號,也就是幾個像空格一樣的空白。
用查找命令從最后找一下,你能找到install開頭的目標字段,如果你熟悉程序,你會發現,安裝的動作就是從這里開始的。

默認情況下make后面沒有指定字段,就從第一個字段開始。當make完成后,我們再次執行make命令是沒有效果的,會提示你沒有什么可以執行了。因此我們指定一個程序中定義的字段install,來執行特定的安裝動作。

對于某些小程序來說,make可能直接就完成了編譯和安裝的動作,而有些程序是用make
all來完成的。對于一些大型軟件,make install之后還可以執行make install-config來安裝配置文件等等。現在你明白為啥是make install而不是make love了吧。哈哈
編譯失敗,需要清理代碼樹,通常我們用make clean或者make distclean,毫無疑問,這兩個參數也是在Makefile中定義好了
如果Makefile中定義了uninstall參數,那么該程序還能卸載。

?????? 就到此為止吧。對于編譯還有一些其他的開關,有興趣可以看看相關的開發的書。


??



本文出自 “風吹云動” 博客,請務必保留此出處[url]http://coolerfeng.blog.51cto.com/133059/88161[/url]本文出自 51CTO.COM技術博客

轉載于:https://blog.51cto.com/betterliu/98759

總結

以上是生活随笔為你收集整理的读书笔记---编译程序中的三板斧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美韩国日本 | 色屋永久 | 成人欧美一区二区三区黑人孕妇 | 久久夜色精品国产欧美乱 | 午夜激情av在线 | 每日av更新| 国久久久| 在线观看免费视频黄 | 日韩人体视频 | 69视频一区二区 | 免费成人黄色网 | 激情一区二区三区 | 在线观看日韩av电影 | 极品蜜桃臀肥臀-x88av | 国产在线一级 | 一级视频片 | 国产高清不卡一区 | 女人裸体免费网站 | 久久网中文字幕 | 动漫玉足吸乳羞免费网站玉足 | 人人草人| 日本熟妇一区二区 | 亚洲欧洲一区 | 99久久久久无码国产精品 | 性国产精品 | 国产精品嫩草久久久久 | 亚洲国产精彩中文乱码av | 操她视频在线观看 | 男人av的天堂 | 国产精品尤物 | 影音先锋啪啪 | 国产精品毛片久久久久久 | 波多野结衣视频在线播放 | 人人妻人人澡人人爽人人精品 | 日本高清网站 | 性开放耄耋老妇hd | 哪里可以免费看av | 国产卡一卡二在线 | 久久久久久久久久久久Av | 免费的av网址 | 老司机av福利| 高潮一区二区三区乱码 | 国产精品美女一区二区 | 亚洲网址在线观看 | 日本黄色中文字幕 | 嫩草综合 | 奇米影视四色在线 | 欧美日韩精品一区二区 | 小嫩嫩精品导航 | 九七精品 | 国产欧美一区二区精品性色超碰 | 五月天一区二区三区 | 国产精品福利在线 | 国产午夜精品一区二区三区四区 | 国产美女主播视频 | 欧美成人视屏 | 国产精品丝袜视频无码一区69 | 青娱乐极品视频在线 | 亚洲视频网站在线观看 | 欧美人与禽猛交乱配 | 精品h| 四虎中文字幕 | 98av视频 | 麻豆成人精品 | 亚洲人成人无码网www国产 | 四虎精品一区 | 怎么可能高潮了就结束漫画 | 日韩欧美中文字幕在线视频 | 嫩草嫩草嫩草嫩草嫩草 | 99re热视频| 在线黄色大片 | 久久久精品99 | 国产精品无码一区二区三区免费 | 亚洲精品乱码久久久久久久久久久久 | 91免费进入| 免费看裸体视频网站 | 99re这里都是精品 | 精品少妇人妻av免费久久洗澡 | 粉嫩av在线播放 | 爱情岛亚洲首页论坛 | 一区二区三区四区五区视频 | 无码人妻aⅴ一区二区三区有奶水 | 日韩精品在线不卡 | 中国亚洲女人69内射少妇 | 中国a级大片 | 欧洲美女毛片 | 茄子视频色 | 久久久精品人妻一区二区三区色秀 | 男女网站免费 | 午夜精品久久久久久久第一页按摩 | 亚洲精品小说 | 国产精品久久久久久久久久久新郎 | 吃瓜网今日吃瓜 热门大瓜 色婷在线 | 超碰人人99 | 四虎影院在线观看免费 | 亚洲呦呦 | 日本午夜视频在线观看 | 九九九色 | 伊人婷婷在线 |