之前说过golang调用C代码的方式可以通过cgo或者是swig,而cgo是不能使用C++相关的东西的,比如标准库或者C++的面向对象特性。怎么办,将c++的功能函数封装成C接口,然后编译成动态库,或者是功能较为简单的可以直接嵌入到go源文件中。
cgo的使用是在linux平台上,在windows平台上可以配置交叉编译器。
动态库头文件:myfuns.h
#pragma once
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
void fun1();
void fun2(int a);
int func3(void **b);
// others
动态库名:myfuns.so
项目简化结构:

本文介绍了如何在Golang中利用cgo调用C/C++动态库,包括将C++功能封装为C接口,编译成动态库,并在Linux平台上的cgo配置与动态库链接方法。在Windows平台,可以设置交叉编译器来实现相同功能。
最低0.47元/天 解锁文章
1302

被折叠的 条评论
为什么被折叠?



