• <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>

            旅途

            如果想飛得高,就該把地平線忘掉

            Linux動態(tài)鏈接庫(標(biāo)準(zhǔn)對象)編程入門

            Linux動態(tài)鏈接庫編程入門

              動態(tài)鏈接庫是一種通用的軟件組件技術(shù),是多種操作系統(tǒng)中提供基本服務(wù)的方式。比如Win32內(nèi)核就是3個DLL文件構(gòu)成。這種技術(shù)在Linux操作系統(tǒng)下也有對應(yīng)的實現(xiàn),就是Linux標(biāo)準(zhǔn)對象Standard Ojbect,對應(yīng)的文件擴展名為.so。

              下面通過一個簡單的例子開始介紹Linux標(biāo)準(zhǔn)對象。

              我們的標(biāo)準(zhǔn)對象文件含有一個函數(shù),不需要聲明export導(dǎo)出符號,只需要編譯器設(shè)置即可。如下:

              #include

              #include

              void show() {

              printf("Standard Object by gashero\n");

              }

              保存為myso.c文件,按照如下編譯:

              $ gcc -fPIC -shared -o libmyso.so myso.c

              執(zhí)行生成一個libmyso.so文件,按照Linux標(biāo)準(zhǔn)對象的命名慣例,應(yīng)該在庫名稱之前加上"lib"前綴,盡管不是必須的。編譯開關(guān)-fPIC代表函數(shù)符號可以重定向,-shared代表編譯結(jié)果是一個標(biāo)準(zhǔn)對象。

              不同于Win32DLL,Linux標(biāo)準(zhǔn)對象中的所有函數(shù)都是直接導(dǎo)出的,都可以被調(diào)用程序所訪問。下面我們編寫調(diào)用程序:

              #include

              int main() {

              printf("Invoke my so\n");

              show();

              return 0;

              }

              保存為invoke.c,按照如下gcc開關(guān)編譯:

              $ gcc -o test invoke.c ./libmyso.so

              編譯生成test可執(zhí)行文件。如上編譯條件的最后一條需要是所調(diào)用的標(biāo)準(zhǔn)對象文件名,注意必須含有路徑。如果只是使用libmyso.so,則必須確保這個文件在可訪問的PATH下面。本例所使用的文件名"./libmyso.so"是當(dāng)前路徑下的,使用了相對路徑。

              如下測試結(jié)果:

              $ ./test

              Invoke my so

              Standard Object by gashero

            posted on 2007-09-29 01:45 旅途 閱讀(632) 評論(0)  編輯 收藏 引用 所屬分類: Linux開發(fā)

            久久只有这精品99| 国产精品成人99久久久久| 亚洲国产成人乱码精品女人久久久不卡| 久久久久国产亚洲AV麻豆| 精品久久久无码人妻中文字幕| 久久人人爽人人爽人人片AV不| 日韩精品久久久久久| 精品久久人人爽天天玩人人妻| 99久久er这里只有精品18| 久久久久免费看成人影片| 久久久精品久久久久久 | 思思久久99热只有频精品66| 亚洲精品国精品久久99热一| 午夜精品久久久久久| 亚洲一本综合久久| 久久综合九色综合精品| 欧美精品乱码99久久蜜桃| 香蕉久久夜色精品国产2020| 国产麻豆精品久久一二三| 久久久久久久91精品免费观看| 久久夜色tv网站| 久久国产色AV免费看| 久久久久久久精品成人热色戒| 久久久WWW免费人成精品| 韩国三级大全久久网站| 日韩一区二区久久久久久| 无码人妻精品一区二区三区久久久 | 久久精品国产欧美日韩99热| 91精品国产高清久久久久久91| 久久这里只有精品18| 国产亚洲精久久久久久无码77777| 精品久久人人爽天天玩人人妻| 久久久国产精品| 久久伊人精品青青草原日本| 欧美久久久久久| 四虎国产精品免费久久| 久久最新免费视频| 亚洲成av人片不卡无码久久| 久久精品国产清自在天天线| 精品乱码久久久久久夜夜嗨 | 久久午夜电影网|