• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • SO的創建及使用

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    分析G CC 的兩條命令 1.把.c文件變成so庫 gcc -shared -o libblog.so input.c 用該命令就把.c文件變成了so庫 2.編譯.c文件為可執行文件 *如果你在你的.c文件文件中包括了包含so庫函數聲明的頭文件, 則你在編譯時用的命令為: gcc -L/your/lib/path -lblog -o
    分析GCC的兩條命令

    1.把.c文件變成so庫
    gcc -shared -o libblog.so input.c
    用該命令就把.c文件變成了so庫

    2.編譯.c文件為可執行文件
    *如果你在你的.c文件文件中包括了包含so庫函數聲明的頭文件,
    則你在編譯時用的命令為:
    gcc -L/your/lib/path -lblog -o blogexe blogexe.c
    以上so庫名稱必須為libblog.so(linux 省略掉了lib等);
    *如果你希望在你的程序里運行時加載,用dlopen的方式打開,使用庫里面的函數和數據。
    則返回函數的形式( man dlopen 的舉例)為:
    int (*cos)(double);
    cos=dlsym(dl-handle,"cos");
    printf("%f",(*cos)(2.0));
    或者這樣
    typedef int (*COSFN)(double);
    COSFN cos;
    cos=dlsym(dl-handle,"cos");
    printf("%f",cos(2.0));
    必須這樣編譯:
    gcc -rdynamic -s -o blogexe blogexe.c -ldl

    3.cpp文件里面函數和符號的導出
    在需要導出變量和函數的前面加上extern "C"


    refrence:1."LINUX系統中動態鏈接庫的創建與使用" by 雨亦奇
                    http://www.ccw.com.cn/htm/app/linux/develop/01_8_6_2.asp

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>