• <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>
            BLUESKY
            一步一個腳印向前走
            今天在網上突然搜索到了關于鏈接庫如何生成的文章,在平時接觸到的代碼中也有這方面的應用,于是看了看,還是決定收藏在我的blog中,以后可以多看看,具體的內容如下:

                如果程序是在編譯時加載庫文件的,就是使用了靜態庫。如果是在運行時加載目標代碼,就成為動態庫。換句話說,如果是使用靜態庫,則靜態庫代碼在編譯時就拷貝到了程序的代碼段,程序的體積會膨脹。如果使用動態庫,則程序中只保留庫文件的名字和函數名,在運行時去查找庫文件和函數體,程序的體積基本變化不大
                靜態庫的原則是“以空間換時間”,增加程序體積,減少運行時間
                動態庫的原則是“以時間換空間”,增加了運行時間,但減少了程序本身的體積

               靜態庫文件的擴展名一般為.a,其編寫步驟很簡單
             ⑴編寫函數代碼
             ⑵編譯生成各目標文件
             ⑶用ar文件對目標文件歸檔,生成靜態庫文件
                注意歸檔文件名必須以lib打頭
               使用要點:
               ⑴在gcc 的-I參數后加上靜態庫頭文件的路徑
               ⑵在gcc 的-L參數后加上庫文件所在目錄
               ⑶在gcc 的-l參數后加上庫文件名,但是要去掉lib和.a擴展名
                 比如庫文件名是libtest.a 那么參數就是 -l test

            制作庫文件
             ⑴生成目標文件
              gcc -c myprogram.c
              執行完后會生成一個myprogram.o文件
             ⑵用ar命令歸檔,格式為ar -rc <生成的檔案文件名> <.o文件名列表>
             再次提醒,歸檔文件名一定要以lib打頭, .a結尾。
              ar -rc libmyprogram.a myprogram.o
              執行完后會生成一個libmyprogram.a文件

            編譯目標文件,注意要把靜態庫頭文件的路徑加到-I參數里面
               gcc -I/directory/to/include -o main.o -c main.c
            現在生成了一個main.o文件
            生成可執行文件,注意要把靜態庫文件的路徑加到-L參數里面,
            把庫文件名(去掉打頭的lib和結尾的.a)加到-l參數后面。如下面所示
              gcc -o main -L/directory/to/lib   main.o -lmyprogram
            此時就會生成一個名為main的可執行文件
            另外,注意- l參數好象應該加到輸入文件名的后面,否則會報錯

            上面的就是靜態庫的操作方法,也是平時比較多的用到的,另外一個動態庫就暫時不去學習了,等用到了再說了,網上的資料很多.......
            posted on 2007-11-17 22:00 LG 閱讀(1152) 評論(0)  編輯 收藏 引用 所屬分類: UnixProgram

            <2007年8月>
            2930311234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            常用鏈接

            相冊

            最新評論

            亚洲精品乱码久久久久久按摩| 综合人妻久久一区二区精品| 97精品国产97久久久久久免费 | 久久精品成人| 午夜欧美精品久久久久久久| 国产午夜久久影院| 中文字幕精品久久久久人妻| 久久综合丁香激情久久| 伊人久久成人成综合网222| 久久99精品久久久久久hb无码| 久久精品夜色噜噜亚洲A∨| 久久久久99精品成人片直播| 午夜精品久久久久久| 色综合久久综合网观看| 亚洲精品乱码久久久久久久久久久久| A级毛片无码久久精品免费| 久久中文骚妇内射| 国产成人久久精品一区二区三区| 18岁日韩内射颜射午夜久久成人| 亚洲精品乱码久久久久久蜜桃不卡 | 久久66热人妻偷产精品9| 亚洲人成无码网站久久99热国产 | 亚洲欧洲精品成人久久奇米网| 色噜噜狠狠先锋影音久久| 99久久99久久精品免费看蜜桃| 狠狠综合久久综合88亚洲| 欧美久久一区二区三区| 色综合久久最新中文字幕| 久久99毛片免费观看不卡 | 久久99热狠狠色精品一区| 无码人妻精品一区二区三区久久| 色综合久久天天综线观看| 久久久久亚洲AV成人网人人软件| 国内精品久久久久久久coent| 久久免费高清视频| 亚洲狠狠久久综合一区77777| 精品久久一区二区三区| 亚洲国产二区三区久久| 色综合久久精品中文字幕首页| 夜夜亚洲天天久久| 久久亚洲国产精品123区|