提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
本人一直使用C# ,以前都在windows下开发,最新在Ubuntu使用netcore。考虑有些类库只有C++代码。怎么把C++函数封装给C#使用呢。
一、环境
1、需要gcc编译器,一般Ubuntu更新时候够自带。
2、需要netcore运行时。自行百度安装。
二、编译so库
1.创建头文件 test_so.h
代码如下(示例):
#include "stdio.h"
extern "C"
{
void test_a();
void test_b();
void test_c();
}
使用extern “C” 才能被C# import。
2.实现函数
创建C++文件,test.cpp
代码如下(示例):
#include "so_test.h"
void test_a()
{
printf("this is in test_a...\n");
}
void test_b()
{
printf("this is in test_b...\n");
}
void test_c()
{
printf("this is in test_c...\n");
}
2.编译so文件
在终端里面 运行 指令: gcc test.cpp -fPIC -shared -o libtest.so
在目录下生成 libtest.so文件。执行 nm -D libtest.so可以查看函数