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
完整範例程式碼(連結)
文章標籤
全站熱搜