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

            丁香色欲久久久久久综合网| 日韩久久久久久中文人妻| 88久久精品无码一区二区毛片 | 久久天天躁狠狠躁夜夜2020一| 久久久久国产亚洲AV麻豆| 久久中文字幕一区二区| 国产成人精品久久免费动漫| 亚洲午夜精品久久久久久人妖| 国产巨作麻豆欧美亚洲综合久久| 久久无码国产| 国产精品国色综合久久| 久久久青草青青国产亚洲免观| 亚洲精品乱码久久久久久| 国产成人无码精品久久久免费 | 人妻无码中文久久久久专区| 69久久精品无码一区二区| 久久五月精品中文字幕| avtt天堂网久久精品| 国内精品伊人久久久久777| 精品国产青草久久久久福利 | 日本强好片久久久久久AAA| 久久久www免费人成精品| 久久91这里精品国产2020| 免费国产99久久久香蕉| 国产精品无码久久综合| 久久精品国产99久久久古代| 欧美日韩精品久久久久| 亚洲国产精久久久久久久| 国产一级持黄大片99久久| 亚洲精品tv久久久久久久久| 久久精品桃花综合| 久久久久亚洲AV无码专区网站| 久久久久久久综合日本亚洲| MM131亚洲国产美女久久| 久久精品国产亚洲av麻豆色欲 | 久久一本综合| 久久亚洲视频| av色综合久久天堂av色综合在| 久久久无码精品亚洲日韩蜜臀浪潮| 亚洲欧美精品一区久久中文字幕| 久久综合精品国产一区二区三区|