生成.so文件
test.cpp
#include <iostream>
int calcAdd(int x, int y)
{
return x+y;
}
test.h
#include "test.h"
extern "C" int calcAdd(int x, int y);
main.cpp
#include "test.h"
int main
{
int result=calcAdd(1,2);
}
生成.so文件:
g++ -std=c++11 test.cpp -fPIC -shared -o libtest.so
编译main.cpp并链接.so生成可执行文件main:
g++ -std=c++11 main.cpp -L. -ltest -o main
调用.so文件
查看是否能找到.so文件:
ldd main
若.so文件显示not found,则需将.so文件复制到/usr/lib文件下,即执行如下语句:
sudo cp libtest.so /usr/lib
再执行ldd main,便不会出现not found,说明调用了动态链接库中的函数。
执行可执行文件main:
./main