C++ 調用.so檔時可以區分為編譯時期調用以及執行時期調用.

以下首先透過簡單的範例製作一個mylib.so檔,之後寫一個C++調用該函式.

 

Code:


#ifndef __MY_LIB_H__
#define __MY_LIB_H__

void foobar(int i);

#endif

#include <stdio.h>
#include "mylib.h"

void foobar(int i)
{
    printf("Printing from mylib.so %d\n", i);
}

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
using namespace std;

//宣告本段是使用C語言實現,編譯時須採用對應的C語言編譯器處理
#ifdef __cplusplus
    extern "C"{
#endif

#include "mylib.h" // for foobar()

#ifdef __cplusplus
    }
#endif

int main()
{
    foobar(100);
    return 0;
}

編譯:

g++ -o use_mylib use_mylib.cpp mylib.so

 

 

完整範例程式碼(連結

arrow
arrow
    文章標籤
    c c++
    全站熱搜

    Lung-Yu,Tsai 發表在 痞客邦 留言(0) 人氣()