1.環境
ubuntu 14.04
g++ 4.8.4
2.有類的情況
1)庫檔案
a)原始碼
class cal ;
typedef cal* (*creat_t)();
typedef void (*destroy_t)(cal*);
#include "cppl2.h"
cal::cal(){};
cal::~cal(){}
int cal::add(int a, int b)
//typedef cal* create_c();
//typedef void destroy_c(cal*);
extern "c" cal* create()
extern "c" void destroy(cal* c)
b)編譯成可執行檔案
cd到cppcppl2.cpp所在目錄,輸入命令
g++ -fpic -shared -o libcppl2.so cppl2.cpp
會在當前目錄生成檔案libcppl2.so
2)主程式
a)原始碼
#include #include #include "cppl2.h"
using namespace std;
int main()
b)編譯成可執行檔案
cd到cppcppl2.cpp所在目錄,輸入命令
g++ cppcppl2.cpp -o cppcppl2 -ldl
3)執行
cd到可執行檔案cppcppl1所在目錄
輸入命令
./cppcppl2
c語言呼叫c語言的so動態庫
1.環境 ubuntu14.o4 gcc 4.8.4 2.庫檔案生成 1 原始碼 int add int a,int b 2 生成庫檔案 cd到cltest.c所在目錄,輸入命令 gcc shared o libcltest.so cltest.c會在當前目錄生成檔案libcltest.so 3.主...
php呼叫c語言編寫的so動態庫
php除了使用擴充套件庫的方式呼叫c函式,還可以通過socket通訊的方式。這裡介紹前者。1.先看本機是否已經安裝了較低版本的php find usr name php 或者rpm aq grep php 如果存在,就使用rpm命令等方式卸掉 2.php原始碼安裝,configure的引數如下 co...
php呼叫c語言編寫的so動態庫
php除了使用擴充套件庫的方式呼叫c函式,還可以通過socket通訊的方式。這裡介紹前者。1.先看本機是否已經安裝了較低版本的php find usr name php 或者rpm aq grep php 如果存在,就使用rpm命令等方式卸掉 2.php原始碼安裝,configure的引數如下 co...