1、add.c的源代码
#include "add.h"
int add(int a,int b)
{
return a+b;
}
命令编译:gcc -shared -fPIC add.c -o libadd.so
2、main.cpp
#include <iostream>
#include "add.h"
int main(int argc,char *argv[])
{
add(1,1);
return 0;
}
命令编译:g++ main.o -o test1 -L./ -ladd
报错信息
原因分析:由于extern "C"{}没有加入,导致g++编译器找不到add函数
不加extern "C"{}的main.o符合表:
加上extern "C"{}后的main.o符合表:
实践上libadd.so的符合表
修改后main.cpp的代码
#include <iostream>
extern "C"{
#include "add.h"
}
int main(int argc,char *argv[])
{
add(1,1);
return 0;
}